rc.d/rc.local简介
/etc/rc.local 是 /etc/rc.d/rc.local的软连接(系统安装时根据/etc/rc.d/rc.local生成的)
所以开机自启实际上是执行/etc/rc.d/rc.local这个文件(该文件需要可执行权限,文件头为 #!/bin/bash)
1 2 3
| [root /]# ls -l /etc/rc.local lrwxrwxrwx 1 root root 13 Aug 24 2021 /etc/rc.local -> rc.d/rc.local
|
问题一:rc.d/rc.loacl无法执行
一般来说,造成这种情况的是由于该文件没有可执行权限
下面来说下不一般的
首先看看有没有rc.local这个服务
1 2
| systemctl list-unit-files|grep rc.local rc-local.service static
|
再看看rc.local服务的状态
1 2 3 4 5 6 7 8 9 10 11 12 13
| systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled) Active: failed (Result: exit-code) since Thu 2022-06-30 14:39:40 CST; 7min ago Process: 1074 ExecStart=/etc/rc.d/rc.local start (code=exited, status=203/EXEC)
Jun 30 14:39:39 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Starting /etc/rc.d/rc.local Compatibility... Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: rc-local.service: control process exited, code=exited status=203 Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Failed to start /etc/rc.d/rc.local Compatibility. Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Unit rc-local.service entered failed state. Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: rc-local.service failed.
|
很显然,服务启动失败
一般来说服务组件是没问题的,那么我们检查下/etc/rc.d/rc.local文件,看看是不是该文件格式不正确
1 2 3
| cat /etc/rc.d/rc.local
/bin/bash /s.sh
|
果然,少了#!/bin/bash
作为第一行
加上后就OK了
参考:树莓派:【FAILED】 Failed to start /etc/rc.local Compatibility.