从 SysV init 到 systemd全面解析 Linux 中的运行级别


运行级别是 Linux 系统处于某种状态或模式的标志。它决定了哪些服务应该启动或停止。每个运行级别对应一个特定的系统状态,如单用户模式、图形界面、关机等。

在传统的 SysV init 系统中,运行级别由数字表示(0 到 6)。而在 modern Linux 发行版(如 CentOS 7+/Debian 8+/Ubuntu 16.04+)中,systemd 接管了 init 系统,运行级别由“目标(Target)”来取代,但本质上仍可对应传统级别。

传统 SysV Init 运行级别

SysV init 使用 /etc/inittab 配置文件指定默认运行级别,通过启动对应目录下的脚本来启动或停止服务。

各运行级别的含义

如下:

运行级别状态描述
0停机(关机)
1单用户模式(维护/恢复)
2多用户模式(无网络)
3多用户模式(带网络,命令行)
4自定义(一般未使用)
5多用户模式(带图形界面)
6重启系统

⚠️ 注意:运行级别 0 和 6 不应作为默认运行级别,否则系统会陷入关机或重启循环。

查看当前运行级别

runlevel

输出示例:

N 3

含义:当前运行级别为 3,“N” 表示无法检测上一个运行级别(如系统刚启动)。

切换运行级别

init 5       # 切换到图形界面
init 3       # 切换到命令行模式

或使用:

telinit 1    # 切换到单用户模式

设置默认运行级别

编辑 /etc/inittab

id:3:initdefault:

保存后,系统下次启动默认进入运行级别 3。

启动脚本路径与运行级别的关系

各运行级别对应的服务脚本目录如下:

/etc/rc.d/rc0.d/
/etc/rc.d/rc1.d/
/etc/rc.d/rc2.d/
/etc/rc.d/rc3.d/
/etc/rc.d/rc5.d/
/etc/rc.d/rc6.d/

这些目录中包含 S(start)和 K(kill)开头的链接,指向 /etc/init.d/ 目录下的实际服务脚本。

例如:

/etc/rc.d/rc3.d/S80httpd -> /etc/init.d/httpd

表示在运行级别 3 中启动 Apache 服务

systemd 下的“运行级别”:Target 机制

随着 systemd 的引入,传统的运行级别机制被更灵活的 Target 所取代。虽然 runlevel 命令仍然可用,但它已成为对 systemd 的兼容层。

常见 Target 对应关系

SysV 级别systemd Target
0poweroff.target
1rescue.target
3multi-user.target
5graphical.target
6reboot.target

查看当前运行级别(Target)

systemctl get-default

在这里插入图片描述
或使用:

systemctl list-units --type=target

在这里插入图片描述

设置默认启动 Target

sudo systemctl set-default multi-user.target

临时切换 Target(不会影响下次启动)

sudo systemctl isolate graphical.target

启动/停止服务对应 Target

查看某个 Target 包含的服务:

systemctl list-dependencies multi-user.target

创建自定义运行级别(Target)

1、创建一个自定义 target 文件:

sudo cp /usr/lib/systemd/system/multi-user.target /etc/systemd/system/my-custom.target

2、修改内容或添加依赖服务:

[Unit]
Description=My Custom Runlevel
Requires=network.target sshd.service
After=network.target

3、重新加载配置:

sudo systemctl daemon-reexec
sudo systemctl set-default my-custom.target

System V vs systemd

特性对比SysV initsystemd
启动方式顺序执行启动脚本并行启动,提高速度
运行级别数字(0-6)target(如 multi-user.target)
服务管理service 命令systemctl 命令
脚本路径/etc/init.d//usr/lib/systemd/system/等
兼容性旧系统使用新系统主流,兼容传统方式

运行级别不仅是历史遗产,它们仍然以“目标”的形式深深嵌入 modern Linux 系统之中。无论你管理的是经典的 CentOS 6,还是现代的 Ubuntu 20.04,理解运行级别及其现代替代机制 Target,都是迈向资深 Linux 管理员的重要一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bjzhang75

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值