**
centos7下/etc/rc.local文件里配置的开机启动项不执行的解决办法
**
习惯于在/etc/rc.local文件里配置我们需要开机启动的服务,这个在centos6系统下是正常生效的。但是到了centos7系统下,发现/etc/rc.local文件里的开机启动项不执行了!仔细研究/etc/rc.local文件内容,发现问题如下:
[root@mongodb ~]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
.......
上面的内容翻译出来的意思是:
#这个文件是为了兼容性的问题而添加的。
#强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
#与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
#请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。
然后接着查看/etc/rc.local的权限
[root@mongodb ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 1月 29 10:45 /etc/rc.local -> rc.d/rc.local
[root@mongodb ~]# ll /etc/rc.d/rc.local
-rw-r–r--. 1 root root 473 1月 25 23:52 /etc/rc.d/rc.local
/etc/rc.d/rc.local没有执行权限,于是按说明的内容执行:
[root@mongodb ~]# chmod +x /etc/rc.d/rc.local
[root@mongodb ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 473 1月 25 23:52 /etc/rc.d/rc.local
重启服务器后发现/etc/rc.local文件里设置的开启启动项能够正常执行了。由此可见,虽然centos版本的变迁,/etc/rc.local、/etc/rc.d/rc.local正在处于被弃用的路上。
**
2.关于在rc.local文件中指定用户执行脚本命令
**
使用su命令即可,命令格式:
su - username -c “your-cammand” ,如:
[root@mongodb ~]$ cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemdservices or udev rules
# to run scripts during boot instead of using thisfile.
#
# In constrast to previous versions due to parallelexecution during boot
# this script will NOT be run after all otherservices.
#
# Please note that you must run 'chmod +x/etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/bin/systemctl stop iptables.service
#startup mongodb
/bin/su - xiaoyao -c "/mnt/mongodb/bin/mongod --config/mnt/mongodb/bin/mongodb.conf"
注意:指定用户执行的脚本(程序)目录,该用户必须有管理该脚本(程序)目录(文件)的权限。
最好将该脚本(程序)目录的所有权给该用户:
chown -R xiaoyao.xiaoyao /mnt/mongodb