欢迎来到之路教程(on itroad-com)

使用 systemd 更改运行级别

运行级别目标可以通过使用 systemctl 隔离命令来改变:

# systemctl isolate multi-user.target

要查看可用的目标,我们可以使用类型目标发出 list-units 选项

# systemctl list-units --type=target

运行级别 3 由 multi-user.target 模拟。
这是通过符号链接完成的,可以互换使用

# systemctl isolate multi-user.target
# systemctl isolate runlevel3.target
# ls -l /usr/lib/systemd/system/runlevel3.target
lrwxrwxrwx 1 root root 17 Oct 18 11:41 /usr/lib/systemd/system/runlevel3.target -> multi-user.target

运行级别 5 由 graphics.target 模拟。
这也是通过符号链接完成的,可以互换使用

# systemctl isolate graphical.target
# systemctl isolate runlevel5.target
# ls -l /usr/lib/systemd/system/runlevel5.target
lrwxrwxrwx 1 root root 16 Oct 18 11:41 /usr/lib/systemd/system/runlevel5.target -> graphical.target
CentOS/RHEL 7:如何使用 systemd 更改运行级别

Systemd 已取代 sysVinit 作为 RHEL 7 中的默认服务管理器。
某些 sysVinit 命令已被符号链接到它们的 RHEL 7 对应项,但是这最终将被弃用,以支持未来的标准 systemd 命令。

更改默认运行级别

可以使用 set-default 选项更改默认运行级别。

# systemctl set-default multi-user.target

要获取当前设置的默认值,我们可以使用 get-default 选项。

# systemctl get-default

systemd 中的默认运行级别也可以使用以下方法设置(虽然不推荐)。

# ln -sf /lib/systemd/system/[desired].target /etc/systemd/system/default.target

通过添加以下选项,还可以在引导期间在内核行中设置默认目标:

systemd.unit=multi-user.target

SysVinit 和 systemd 运行级别的比较

这是 SysVinit 运行级别 和 systemd 目标之间的比较。

Sysvinit 运行级别Systemd 目标作用
0runlevel0.target, poweroff.target系统停止/关闭
1, s, singlerunlevel1.target, rescue.target单用户模式
2, 4runlevel2.target, runlevel4.target, multi-user.target用户定义/站点特定的运行级别。 默认情况下,与 3 相同。
3runlevel3.target, multi-user.target多用户、非图形模式、仅文本控制台
5runlevel5.target, graphical.target多用户,图形模式
6runlevel6.target, reboot.target重启
emergencyemergency.target紧急模式
日期:2020-09-17 00:12:00 来源:oir作者:oir