封尘网

让学习成为一种习惯!

Centos 6.5下rc.local命令不执行

今天在虚拟机上把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,所以执行不了。