最近在安装程序时发现CentOS 7的开机自定义配置文件(/etc/rc.local)内配置了启动脚本不会开机执行;于是查看了下配置文件内容发现了问题的原因
[root@localhost ~]# 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. touch /var/lock/subsys/local
上面的意思说这个文件是为了兼容性的问题而添加的,建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件;与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行;必须执行“chmod +x /etc/rc.d/rc.local”来确保这个脚本在引导时执行。
于是查看权限时发现/etc/rc.d/rc.local文件并没有执行权限
[root@localhost ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Feb 3 23:29 /etc/rc.local -> rc.d/rc.local [root@localhost ~]# ll /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 Feb 1 04:53 /etc/rc.d/rc.local
因此按照提示配置执行权限并查验
[root@localhost ~]# chmod +x /etc/rc.d/rc.local [root@localhost ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Feb 3 23:29 /etc/rc.local -> rc.d/rc.local [root@localhost ~]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 Feb 1 04:53 /etc/rc.d/rc.local
通过以上配置这个问题得以解决