开机自启 rc.d/rc.loacl

Catalogue
  1. 1. rc.d/rc.local简介
  2. 2. 问题一:rc.d/rc.loacl无法执行

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.