[Linux] Linux Runlevel指南

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 0init 6
它会立即关闭或重启系统,所有未保存的数据会丢失。


四、查看与切换运行级别

1️⃣ 查看当前运行级别

runlevel

输出示例:

N 3
  • N 表示上一个运行级别(首次启动时为 N)
  • 3 表示当前运行级别为 3(命令行多用户模式)

2️⃣ 切换运行级别

sudo init 5

表示切换到图形界面模式(运行级别 5)。

也可以使用:

sudo telinit 3

telinitinit 的别名,更推荐使用。


五、设置系统默认运行级别

在老的 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 0init 6

十、实战练习(建议动手)

1️⃣ 查看当前运行级别

runlevel

2️⃣ 切换到单用户模式

sudo systemctl isolate rescue.target

3️⃣ 设定系统默认启动到命令行模式

sudo systemctl set-default multi-user.target

4️⃣ 还原为图形界面模式

sudo systemctl set-default graphical.target
posted on 2025-10-29 14:41  风惊庭前叶  阅读(19)  评论(0)    收藏  举报