centos7启动后/etc/rc.local文件里配置的开机启动项不执行的解决办法
问题:centos7启动后/etc/rc.local文件里配置的开机启动项不执行
平时除了使用systemctl设置一些服务的开机自启动外,有些服务不能使用systemcctl启动,或者配置systemcctl启动比较麻烦,比如:ELK相关的服务。
所以我们还习惯于在/etc/rc.local文件里配置我们需要开机启动的服务,这个在centos6系统下是正常生效的。但是到了centos7系统下,发现/etc/rc.local文件里的开机启动项不执行了!
仔细研究/etc/rc.local文件内容,如下:
[root@master ~]# 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”来确保确保这个脚本在引导时执行。
从上面的配置文件可以得出,centos7要想使用/etc/rc.local启动服务,那就必须给/etc/rc.local赋予可执行的权限,默认系统安装好后这个配置文件是没有执行权限的。
根据要求给/etc/rc.local赋予执行权限:
[root@master ~]# chmod +x /etc/rc.d/rc.local [root@master ~]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 2月 15 12:25 /etc/rc.d/rc.local
重启服务器后发现/etc/rc.local文件里设置的开启启动项能够正常执行了。