今天在虚拟机上把Memcached的环境变量加到了/etc/profile
里,并测试命令可以成功执行。
然后把启动命令添加到rc.local里:
cat >>/etc/rc.local <<-EOF
#memcached server by swper
memcached -m 32m -p 11211 -d -u nobody -P /var/run/memcached.pid -c 8192
memcached -m 32m -p 11212 -d -u nobody -P /var/run/memcached_1.pid -c 8192
EOF
重启机器,发现没有生效。
查看文件是指向/etc/rc.d/rc.local
并且权限没有问题。
lrwxrwxrwx. 1 root root 13 12月 25 11:31 /etc/rc.local -> rc.d/rc.local
直接执行:source /etc/rc.local
服务正常运行。直接把rc.loca文件中的memcached命令改为绝对路径:
/usr/local/memcached-1.4.25/bin/memcached -m 32m -p 11211 -d -u nobody -P /var/run/memcached.pid -c 8192
/usr/local/memcached-1.4.25/bin/memcached -m 32m -p 11212 -d -u nobody -P /var/run/memcached_1.pid -c 8192
重启后,服务正常运行了。网上很多网友说什么权限不够,什么软链接,selinux配置都不是我的问题。我的问题是虽然此命令环境变量在root用户下添加到了/etc/profile
配置文件里,但是系统自动启动时识别不到,就等于-bash: memcached: command not found
,所以执行不了。