ChatGPT生成(2025年10月29日14:42:28)
适用系统: CentOS / Ubuntu / Debian / openSUSE / RHEL 等传统使用 SysV init 的系统
Linux init 运行级别详解(Runlevel 学习指南)
一、什么是 init
在 Linux 启动过程中,init 是系统启动的第一个用户级进程(PID=1)。
它的主要任务是:
- 根据系统配置文件(如
/etc/inittab)确定系统的运行级别(Runlevel); - 启动对应的系统服务与进程;
- 管理系统关机、重启等操作。
可以理解为:
init是 Linux 系统的“调度员”,决定系统该进入哪种工作状态。
二、什么是“运行级别”(Runlevel)
“运行级别”表示 Linux 当前所处的工作模式。
不同的运行级别下,系统启用的服务和功能不同。
例如:
- 有的运行级别仅允许命令行登录;
- 有的运行级别启动图形界面;
- 有的运行级别用于安全维护或关机。
三、传统 SysV Init 的运行级别定义(init 0-6)
| 运行级别 | 名称 | 功能描述 |
|---|---|---|
| 0 | 关机模式(Halt) | 关闭系统(相当于 shutdown -h now) |
| 1 | 单用户模式(Single User Mode) | 仅 root 用户登录,用于维护系统(如修复文件系统) |
| 2 | 多用户模式(无网络) | 允许多用户登录,但不启用网络服务 |
| 3 | 多用户模式(命令行) | 常用运行模式:多用户 + 网络 + 无图形界面 |
| 4 | 保留(自定义) | 系统保留,用户可自定义用途 |
| 5 | 多用户图形模式(Graphical) | 启动图形界面(X Window / GNOME / KDE) |
| 6 | 重启模式(Reboot) | 重启系统(相当于 reboot) |
📘 举例理解
init 0→ 立即关机init 1→ 进入单用户模式,只有 root 可以操作,常用于修复系统init 3→ 服务器常用模式(命令行、支持 SSH 登录)init 5→ 桌面电脑常用模式(图形界面)init 6→ 重启系统
⚠️ 注意:不要随意执行
init 0或init 6!
它会立即关闭或重启系统,所有未保存的数据会丢失。
四、查看与切换运行级别
1️⃣ 查看当前运行级别
runlevel
输出示例:
N 3
N表示上一个运行级别(首次启动时为 N)3表示当前运行级别为 3(命令行多用户模式)
2️⃣ 切换运行级别
sudo init 5
表示切换到图形界面模式(运行级别 5)。
也可以使用:
sudo telinit 3
telinit 是 init 的别名,更推荐使用。
五、设置系统默认运行级别
在老的 SysV init 系统中,默认运行级别保存在:
/etc/inittab
内容示例:
id:3:initdefault:
这表示系统启动后默认进入运行级别 3。
六、systemd 系统中的新概念(适用于 Ubuntu 16.04+ / CentOS 7+)
现代 Linux(如 Ubuntu 20.04、CentOS 7 及之后)使用 systemd 替代 SysV init。
systemd 不再使用数字“运行级别”,而是使用 target(目标) 概念。
| 传统运行级别 | systemd 对应 Target | 说明 |
|---|---|---|
| 0 | poweroff.target | 关机 |
| 1 | rescue.target | 单用户模式 |
| 2,3,4 | multi-user.target | 多用户命令行模式 |
| 5 | graphical.target | 图形界面模式 |
| 6 | reboot.target | 重启 |
📘 例子(systemd 用法)
查看当前运行级别
systemctl get-default
设置默认运行级别
sudo systemctl set-default multi-user.target
切换运行级别
sudo systemctl isolate graphical.target
关机与重启(推荐)
sudo systemctl poweroff
sudo systemctl reboot
七、实践建议
| 目标 | 推荐命令 |
|---|---|
| 临时切换到图形界面 | sudo systemctl isolate graphical.target |
| 永久设为命令行启动 | sudo systemctl set-default multi-user.target |
| 进入单用户维护模式 | 在启动菜单选项中选择 “Advanced options → Recovery mode” 或执行 systemctl rescue |
| 安全关机 | sudo systemctl poweroff |
| 安全重启 | sudo systemctl reboot |
八、总结思维导图
init 运行级别
│
├─ 0 → 关机 (poweroff)
├─ 1 → 单用户模式 (rescue)
├─ 2 → 多用户(无网络)
├─ 3 → 多用户(命令行)
├─ 4 → 自定义
├─ 5 → 图形界面
└─ 6 → 重启
systemd 对应:
0 → poweroff.target
1 → rescue.target
3 → multi-user.target
5 → graphical.target
6 → reboot.target
九、初学者建议
- 初学推荐使用运行级别 3(multi-user.target)
因为这是服务器常用环境,稳定且资源占用少。 - 图形界面 (level 5) 适合桌面或学习使用。
- 单用户模式 (level 1) 仅用于系统修复或 root 密码重置。
- 切勿随意执行
init 0或init 6!
十、实战练习(建议动手)
1️⃣ 查看当前运行级别
runlevel
2️⃣ 切换到单用户模式
sudo systemctl isolate rescue.target
3️⃣ 设定系统默认启动到命令行模式
sudo systemctl set-default multi-user.target
4️⃣ 还原为图形界面模式
sudo systemctl set-default graphical.target
浙公网安备 33010602011771号