网站搜索

如何更改 SystemD 中的运行级别(目标)


Systemd 是一个现代的 Linux 初始化系统:一个系统和服务管理器,与流行的 SysV 初始化系统和 LSB 初始化脚本兼容。它的目的是克服 SysV init 的缺点,如下文所述。

  1. “init”和“systemd”背后的故事:为什么在 Linux 中需要用“systemd”替换“init”

在Linux等类Unix系统上,操作系统的当前运行状态被称为运行级别;它定义了正在运行的系统服务。在 SysV init 等流行的 init 系统下,运行级别由数字标识。然而,在 systemd 中,运行级别被称为目标

建议阅读: 管理系统启动流程和服务(SysVinit、Systemd 和 Upstart)

在本文中,我们将解释如何使用 systemd 更改运行级别(目标)。在我们进一步讨论之前,让我们简要介绍一下运行级别数字和目标之间的关系。

  • 运行级别 0poweroff.target 匹配(并且 runlevel0.target 是指向 poweroff.target 的符号链接)。
  • 运行级别 1rescue.target 匹配(并且 runlevel1.target 是指向 rescue.target 的符号链接)。
  • 运行级别 3由multi-user.target模拟(并且runlevel3.target是到multi-user.target的符号链接)。
  • 运行级别 5graphical.target 模拟(并且 runlevel5.target 是到 graphical.target 的符号链接)。
  • 运行级别 6reboot.target 模拟(并且 runlevel6.target 是到 reboot.target 的符号链接)。
  • 紧急emergency.target匹配。

如何在 Systemd 中查看当前目标(运行级别)

当系统启动时,默认情况下 systemd 会激活 default.target 单元。它的主要工作是通过依赖项拉入服务和其他单元来激活它们。

要查看默认目标,请键入以下命令。

#systemctl get-default 

graphical.target

要设置默认目标,请运行以下命令。

systemctl set-default multi-user.target  

如何更改 Systemd 中的目标(运行级别)

当系统运行时,您可以切换目标(运行级别),这意味着现在只有在该目标下定义的服务和单元才会在系统上运行。

要切换到运行级别 3,请运行以下命令。

systemctl isolate multi-user.target 

要将系统更改为运行级别 5,请键入以下命令。

systemctl isolate graphical.target

有关 systemd 的更多信息,请阅读这些有用的文章:

  1. 如何在 Linux 中使用“Systemctl”管理“Systemd”服务和单元
  2. 如何使用 Shell 脚本在 Systemd 中创建和运行新的服务单元
  3. 管理系统启动流程和服务(SysVinit、Systemd 和 Upstart)
  4. 使用 Journalctl 管理 Systemd 下的日志消息 [综合指南]

在本指南中,我们展示了如何使用 systemd 更改运行级别(目标)。使用下面的评论表向我们发送有关本文的任何问题或想法。