linux启动盘无法启动 (linux无法从u盘启动) CentOS7.3学习笔记总结(六十六)- CentOS7-8 rc.local 开机不执行的解决方法

今天在巡检Zabbix server服务器时,发现一监控(没有添加报警提示)对象不在线,其他监控对象都正常,通过检查发现该服务器的zabbix客户端服务器没启动,启动程序已经添加到rc.local里了,并且已经添加了可执行。

通过检查命令:systemctl status rc-local

rc-local状态:Active: inactive (dead)不活动状态,原因找到了,执行命令:

systemctl start rc-local#启动rc-local服务

systemctl enable rc-local#设置rc-local服务开机自启动

记着在/usr/lib/systemd/system/rc-local.service配置文件末尾中添加如下内容:

[Install]

WantedBy=multi-user.target

测试:

在rc.local文件中添加如下内容,看是否重启服务器后执行:

echo "test rc.local" >/root/lxt.txt

分析:

在Centos系统中,我们运维一般在/etc/rc.d/rc.local写入开机需要运行的命令,就可以实现系统开机启动过程,启动所需的命令,这是Centos5-6的常规做法,但是在Centos7-8采用了systemd技术,开机不会运行init进程,但是为了兼容Centos5-6版本,新版本中提供了一个rc-local的systemc服务,可以通过启动此服务,实现rc.local文件中设置的启动程序开机启动,前提条件:/etc/rc.d/rc.local可执行,默认不可执行,所以不要忘了:chmod +x /etc/rc.d/rc.local。

还有一个比较重要的内容,就是在rc-local.service服务文件中,一定要添加[Install]段:

[Install]

WantedBy=multi-user.target

否则,启动或者配置开机启动,都会提示错误。

附:rc.local文件中的注释:

汉语意思:

添加此文件是出于兼容性目的

最好创建自己的systemd服务或udev规则来在引导期间运行脚本,而不是使用这个文件。

与以前的版本不同,由于在引导期间并行执行,此脚本将不会在所有其他服务之后运行。

请注意,您必须运行CHMOD+X/ETC/RC D/rc.本地'以确保在引导期间执行此脚本。