Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决

Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决

问题

Linux系统中,在rc.local里面配置的启动命令等不能能够在开机的时候进行自启动

问题解决

  • 解决问题排查中最大的麻烦,需要进行reboot重启
    • 查看rc-local的运行状态
      systemctl status rc-local
      Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决_第1张图片
      如果是loaded或者是faild类似,说明启动确实出现了问题
    • 首先查看检查是否还有rc.local的软连接

运行命令ls /etc/rc.d/rc3.d -l 判断,是否有S99local -> /etc/rc.d/rc.local 的软链接,文件名可能不一样,但要有 /etc/rc.d/rc.local的软链接有的是 /etc/rc.local
,反正就是你要运行的rc.local的文件。
如果没有则建立软链接,ln -s /etc/rc.d/rc.local /etc/rc.d/rc3.d/S99local
如果有 /etc/rc.d/rc.local链接,则判断权限是否为可执行,如果不是,可添加权限chmod +x /etc/rc.d/rc.local。

  • Then

    • 其次查看rc.local脚本内容
      文件头为#!/bin/bash
      文件尾为exit或者exit 0
    • 最后进行命令排查(如果systemctl restart rc-local运行卡住,不向下进行,多半是某些命令有问题)

可以在rc.local 中添加这个来检查大概哪个命令出现了问题echo "test" > /opt/test.txt ;因为rc.local 脚本中的命令通常是连续执行的,也就是说,脚本中一个命令的执行完成后才会执行下一个命令。

如果你想让 rc.local 中的命令同时并发执行,你需要对它们进行并发控制:
有一种简单的方法是将每个命令放到后台执行,以便它们可以同时运行。例如,在 rc.local 中使用以下命令可以让每个命令在后台执行:
command1 &
command2 &
command3 &

注意
某些命令比如./start.sh,这个start.sh脚本中使用了tail -f nohup.out,他是会造成阻塞的


这里补充几个问题哈:详情见第二篇吧Linux开机rc.local不自启动执行脚本其他一些问题进行补充说明

你可能感兴趣的:(linux,linux,运维,服务器)