linux开机自启动rc.local 设置启动等级
时间: 2025-04-16 15:29:58 浏览: 44
### 如何配置 Linux `rc.local` 文件在指定运行级别下实现开机自启动
#### 创建并编辑 `/etc/rc.local`
创建或编辑 `/etc/rc.local` 文件,确保其具有可执行权限。对于某些发行版,可能需要手动创建此文件:
```bash
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
```
编辑该文件以添加要执行的任务。注意开头应包含解释器声明,并且结尾处需有退出状态码[^1]。
```bash
#!/bin/sh -e
# rc.local
#
# This script is executed at the end of each multi-user runlevel.
#
echo "System initialization complete."
exit 0
```
#### 设置 `rc-local.service` 开机自启
由于现代 Linux 发行版广泛采用 Systemd 来管理服务,因此还需要启用 `rc-local.service` 单元文件来确保 `/etc/rc.local` 能够被执行。这通常涉及到两个步骤:一是确认存在合适的单元文件;二是激活它以便随系统一同启动[^2]。
如果缺少相应的 `.service` 文件,则可以从模板创建一个简单的版本:
```ini
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
```
保存上述内容至 `/etc/systemd/system/rc-local.service` 后,通过下面的命令完成设置:
```bash
sudo systemctl daemon-reload
sudo systemctl enable rc-local
sudo systemctl start rc-local
```
#### 指定运行级别的处理方式
传统 SysVinit 系统允许管理员基于不同的运行级别定义行为。然而,在使用 Systemd 的环境中,这种机制已被简化为几个目标(Target),如 `multi-user.target` 或者 `graphical.target`。当希望仅在一个特定的目标状态下触发时,可以在 `[Install]` 部分修改 `WantedBy=` 参数指向所需的目标名称[^3]。
例如,若只想让 `rc.local` 在图形界面登录之前运行,应该把 `WantedBy=multi-user.target` 改成 `WantedBy=default.target` 或其他适当的选择。
阅读全文
相关推荐


















