rc.local加开机自启未执行
背景
申请的一批新机器,部署了应用加了开机自启动到/etc/rc.d/rc.local中,但物理机宕机并恢复后,上面一台虚拟机上的应用未自启。
OS版本:rh7.4
排查
思路:毕竟是主机组统一批量交付的机器,一般机器上软件和基础的环境变量无问题,所以优先检查自己加的脚本是否正确。
操作是直接复制rc.local中的启动命令,就在终端执行,发现能正常启动,那脚本问题排除。去看rc.local的执行日志,rc.local的默认打印在/var/log/boot.log中,用关键字搜索,发现机器启动时rc-local服务未正常启动,再执行systemctl status rc-local service
查看,发现rc.local服务没起来,正常应该是下图2所示,显示为active,而机器实际显示为图3状态。
到这里,范围就基本缩小了,应该是/etc/rc.d/rc.local文件有问题,查看该文件,发现第一行没有#!/bin/bash。
加上,执行systemctl start rc-local.service
,再查看,发现启动成功,再执行reboot测试,应用能开机自启。
另外,关于centos7/redhat7需要注意:
1、rc-local服务默认不启动,需要自己启动,执行systemctl start rc-local.service
2、/etc/rc.d/rc.local默认没有x权限,需要自己chmod添加,不然启动服务会报错如下