简介
在这个实验中,你将学习如何检查 Linux 中 systemd 单元的状态。你将使用 systemctl is-enabled
命令来确定一个单元是否被配置为在启动时自动启动,使用 systemctl list-units
命令来列出活动单元。最后,你将探索 systemd 单元文件在 /etc/systemd
目录中的位置。这个实验将为你提供管理服务和理解 systemd 初始化过程的必要技能。
在这个实验中,你将学习如何检查 Linux 中 systemd 单元的状态。你将使用 systemctl is-enabled
命令来确定一个单元是否被配置为在启动时自动启动,使用 systemctl list-units
命令来列出活动单元。最后,你将探索 systemd 单元文件在 /etc/systemd
目录中的位置。这个实验将为你提供管理服务和理解 systemd 初始化过程的必要技能。
在这一步中,你将学习如何使用 systemctl is-enabled
命令检查 systemd 单元的状态。
Systemd 是 Linux 的系统和服务管理器。它在初始启动过程之后管理进程。systemd 中的“单元”指的是一个配置文件,它描述了如何处理服务、设备、挂载点或其他系统资源。
systemctl is-enabled
命令用于检查一个单元是否被配置为在启动时自动启动。对于那些你希望在系统启动时运行的服务来说,这一点很重要。
让我们来检查 ssh
服务的状态。SSH(安全外壳协议)服务允许你远程连接到服务器。
如果终端尚未打开,请打开它。你可以在桌面左侧找到 Xfce 终端 图标。
输入以下命令并按回车键:
systemctl is-enabled ssh
你应该会看到类似如下的输出:
enabled
这个输出表明 ssh
服务已被配置为在系统启动时自动启动。
现在,让我们检查一个可能默认未启用的服务的状态,比如 apache2
(一个 Web 服务器)。
输入以下命令并按回车键:
systemctl is-enabled apache2
你可能会看到如下输出:
disabled
这意味着 apache2
服务未被配置为在启动时自动启动。
了解服务是启用还是禁用对于管理系统以及确保必要的服务在重启后能够运行至关重要。
请记住,systemctl is-enabled
命令仅能告诉你一个服务是否被配置为在启动时启动,而不能告诉你它当前是否正在运行。你将在后续步骤中学习如何检查服务是否正在运行。
点击 继续 进入下一步。
在这一步中,你将学习如何使用 systemctl list-units
命令列出活动的 systemd 单元。
systemctl is-enabled
命令能告诉你一个单元是否被配置为在启动时启动,而 systemctl list-units
命令则会显示哪些单元当前已加载到系统内存中并处于活动状态。这有助于你了解当前由 systemd 管理的服务、设备和其他资源。
如果终端尚未打开,请打开它。
输入以下命令并按回车键:
systemctl list-units
你会看到一长串单元列表。输出通常包含以下列:
UNIT
:单元的名称。LOAD
:单元的配置是否已加载到内存中。ACTIVE
:单元的高级激活状态(例如,active
、inactive
、failed
)。SUB
:单元的低级激活状态(例如,running
、exited
、waiting
)。DESCRIPTION
:单元的简要描述。列表可能会很长。为了便于管理,你可以对输出进行过滤。例如,要仅查看服务单元(以 .service
结尾的单元),可以使用以下命令:
systemctl list-units --type service
此命令将显示所有当前活动的服务列表。
你还可以使用 grep
在输出中搜索特定的单元。例如,要查找 ssh
服务:
systemctl list-units | grep ssh
如果 ssh.service
单元处于活动状态,此命令将显示与之对应的行。
systemctl list-units
命令是了解系统当前状态以及 systemd 所管理进程的强大工具。你可以尝试不同的选项和 grep
命令来查找所需的信息。
点击 继续 进入下一步。
在这一步中,你将探索 systemd 存储其单元配置文件的位置,以及如何查看这些文件的内容。
Systemd 单元文件定义了如何管理服务和其他资源,它们通常位于 /etc/systemd/system/
目录中。该目录包含系统管理员或软件包安装的单元文件。
让我们导航到这个目录并列出其内容。
如果终端尚未打开,请打开它。
首先,使用 cd
命令将当前目录更改为 /etc/systemd/system/
:
cd /etc/systemd/system/
现在,使用 ls
命令列出该目录中的文件:
ls
你会看到一系列 .service
、.target
和其他单元文件。这些文件包含了 systemd 处理每个单元的指令。
让我们使用 cat
命令查看 ssh.service
文件的内容。记住,你当前位于 /etc/systemd/system/
目录中,因此可以直接通过文件名引用该文件。
cat ssh.service
你将看到 ssh.service
文件的内容。这个文件是一个纯文本文件,包含不同的部分和指令,用于告诉 systemd 如何启动、停止和管理 SSH 服务。
例如,你可能会看到 [Unit]
、[Service]
和 [Install]
等部分。
[Unit]
部分包含有关单元及其依赖项的一般信息。[Service]
部分定义了启动和停止服务时要执行的命令。[Install]
部分包含有关如何安装和启用该单元的信息。理解这些单元文件的结构和内容是使用 systemd 进行高级系统管理的关键。虽然细节可能很复杂,但只要知道在哪里找到它们以及如何查看它们,就是一个很好的开端。
你可以使用 less
代替 cat
来逐页查看文件内容,这对于较大的文件很有帮助:
less ssh.service
按 q
退出 less
。
点击 继续 完成此实验。
在本实验中,你学习了如何使用 systemctl is-enabled
命令检查 systemd 单元是否已启用,从而在系统启动时自动启动。你通过检查 ssh
和 apache2
服务的状态进行了实践,了解到“enabled”表示该单元将在启动时启动,而“disabled”则表示不会启动。
你还学习了如何使用 systemctl list-units
命令列出活动的 systemd 单元,该命令能让你更全面地了解系统中当前正在运行或已加载的单元。最后,你探索了如何查看位于 /etc/systemd
目录中的 systemd 单元配置文件,从而深入了解单元是如何定义和配置的。