centos rc.local 开机执行命令
找到文件/usr/lib/systemd/system/rc-local.service,在末尾添加如下代码:
[Install] WantedBy=multi-user.target
设置rc-local开机自启:
systemctl enable rc-local
修改文件/etc/rc.d/rc.local在末尾添加
service docker start && docker start example_service && docker exec -i example_service sh test.sh
注意exec后面是 -i 不是-it
以下是原文(原地址:https://baijiahao.baidu.com/s?id=1677865621524560758&wfr=spider&for=pc):
今天在巡检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.本地'以确保在引导期间执行此脚本。