什么是 Linux 上的“运行级别”?

当 Linux 系统启动时,它会进入其默认运行级别并运行与该运行级别关联的启动脚本。您还可以在运行级别之间切换——例如,有一个专为恢复和维护操作设计的运行级别。
传统上,Linux 使用 System V 风格的初始化脚本——虽然新的初始化系统最终会淘汰传统的运行级别,但现在还没有。例如,Ubuntu 的 Upstart 系统仍然使用传统的 System V 风格的脚本。
什么是运行级别?
当 Linux 系统启动时,它会启动 init 进程。 init 负责启动系统上的其他进程。例如,当您启动 Linux 计算机时,内核会启动 init,init 会执行启动脚本来初始化您的硬件、启动网络、启动您的图形桌面。
但是,init 执行的启动脚本不止一组。有多个运行级别和它们自己的启动脚本——例如,一个运行级别可能会启动网络并启动图形桌面,而另一个运行级别可能会禁用网络并跳过图形桌面。这意味着您可以使用单个命令从“图形桌面模式”切换到“没有网络的文本控制台模式”,而无需手动启动和停止不同的服务。
更具体地说,init 运行位于与运行级别相对应的特定目录中的脚本。例如,当您在 Ubuntu 上进入运行级别 3 时,init 会运行位于 /etc/rc3.d 目录中的脚本。

至少,这是它与传统 System V init 系统一起工作的方式——Linux 发行版开始取代旧的 System V init 系统。虽然 Ubuntu 的 Upstart 目前保持与 SysV 初始化脚本的兼容性,但将来可能会发生变化。
运行级别
一些运行级别在 Linux 发行版之间是标准的,而一些运行级别因发行版而异。
以下运行级别是标准的:
- 0 – Halt(关闭系统。)
- 1 – 单用户模式(系统启动进入超级用户模式,无需启动守护进程或网络。非常适合启动进入恢复或诊断环境。)
- 6 – 重启
运行级别 2-5 因分布而异。例如,在 Ubuntu 和 Debian 上,运行级别 2-5 是相同的,并提供具有网络和图形登录的完整多用户模式。在 Fedora 和 Red Hat 上,运行级别 2 提供不带网络的多用户模式(仅限控制台登录),运行级别 3 提供带网络的多用户模式(仅限控制台登录),运行级别 4 未使用,运行级别 5 提供带网络的多用户模式网络和图形登录。
切换到不同的运行级别
要在系统已运行时切换到不同的运行级别,请使用以下命令:
须藤 telinit #
将 # 替换为您要切换到的运行级别的编号。如果您正在运行不使用 sudo 的发行版,请省略 sudo 并以 root 身份运行该命令。

直接引导到特定的运行级别
您可以选择一个运行级别以从引导加载程序引导至 - 例如 Grub。在启动过程开始时,按任意键访问 Grub,选择您的启动项,然后按 e 对其进行编辑。

您可以在linux 行的末尾添加single 以进入单用户运行级别(运行级别1)。 (之后按 Ctrl+x 启动。)这与 Grub 中的恢复模式选项相同。

传统上,您可以指定一个数字作为内核参数,然后启动到该运行级别——例如,使用 3 而不是 single 来启动到运行级别 3。但是,这似乎不适用于最新版本的 Ubuntu——Upstart 似乎不允许这样做。同样,如何更改默认运行级别将取决于您的发行版。
虽然 Ubuntu 的 Upstart 守护进程仍然模拟 SystemV init 系统,但这些信息中的大部分将在未来发生变化。例如,Upstart 是基于事件的——它可以在事件发生时停止和启动服务(例如,服务可以在硬件设备连接到系统时启动,并在设备移除时停止。)Fedora 也有自己的继任者初始化,systemd。