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文件里设置的开启启动项能够正常执行了。

posted @ 2022-11-08 10:56  粉色纽扣  阅读(442)  评论(0编辑  收藏  举报