如何使用 Systemd 列出服务

主流 Linux 发行版都使用 Systemd,这是一个基于启用和禁用“服务”文件工作的初始化系统。 如果您尝试列出这些服务文件但不知道如何操作,则需要使用 systemctl 命令。

在本指南中,我们将介绍在 Linux 上列出 Systemd 服务文件的各种方式。 要开始使用,请确保您使用的是带有 Systemd 的 Linux 操作系统。 然后,打开一个终端窗口并继续操作。

使用 Systemd 列出活动服务

如果您经常使用 Systemd,在某些时候,您可能想知道在您的 Linux 系统启动时哪些服务处于活动状态。 列出活动服务非常简单,您可以使用 systemctl –type=service systemctl –type=service –state=running 命令来完成。

此命令在运行时将显示所有服务的表(如果它们处于活动状态)以及简要说明。 要运行此程序,请打开一个终端窗口。 终端窗口打开后,执行以下命令。

systemctl --type=service --state=running

如果您尝试筛选特定服务的所有活动服务,则查看这个大表可能会非常乏味。 值得庆幸的是,systemctl 命令可以与 grep 命令结合作为过滤机制。

例如,要检查“snapd.service”是否正在运行和加载,您可以运行 systemctl –type=service –state=running | grep ‘snapd,’ 并且输出将仅显示 Snapd 服务,而不是整个表。

systemctl --type=service --state=running | grep 'snapd'

如果您想将表的输出保存到文本文件以供以后使用,请使用以下命令。

systemctl --type=service --state=runningrunning > ~/active-services.txt

要随时查看文本文件,请执行下面的 cat 命令。

cat ~/active-services.txt

使用 Systemd 列出不活动的服务

列出活跃的 Systemd 服务很有帮助,但不活跃的服务呢? 是的,也可以列出这些。 就是这样。 首先,打开一个终端窗口。

  如何在没有密码的情况下自动登录 Mac

一旦终端窗口打开并准备好使用,执行 systemctl –type=service 命令,但在 –state= 插槽中,放置“inactive”而不是“running”。 通过这样做,您可以查看 Linux 系统上哪些 Systemd 服务处于非活动状态。

systemctl --type=service --state=inactive

与活动服务一样,Systemd 将创建一个漂亮、整洁的表格,并向您展示哪些 Systemd 服务处于非活动状态、已失效和未使用。 如果您想过滤此表以查找特定服务是否已失效,您可以将其与 grep 命令结合使用。

例如,要确定“updatedb.service”文件是否处于非活动状态,您可以将 systemctl –type=service –state=inactive 与下面的 grep 命令结合起来在表中搜索它。

systemctl --type=service --state=inactive | grep 'updatedb.service'

如果您需要将所有不活动的 Systemd 服务文件保存到文本文件以供以后阅读,请使用以下命令。

systemctl --type=service --state=inactive > ~/inactive-services.txt

要直接从终端窗口读取此文本文件,请使用 cat 命令。

cat  ~/inactive-services.txt

使用 Systemd 列出所有已安装的服务

如果您需要查看所有已安装的 Systemd 服务,无论它们是否处于活动状态,您都需要使用 systemctl list-unit-files –type=service 命令并排除 –state 命令行开关。 通过排除 –state,Systemd 将能够轻松列出您计算机上的每个服务文件。

systemctl list-unit-files --type=service

执行上述命令后,Systemd 将打印出一个包含系统上每个服务文件的表。 从这里,您可以对表格进行排序以找到您需要的服务文件。

如果找不到特定的服务文件,可以将 systemctl list-unit-files –type=service 命令与 grep 命令结合使用过滤器。 使用下面的命令,过滤表以找到您需要的服务文件。

systemctl list-unit-files --type=service | grep 'my-service'

想要将所有 Systemd 服务导出到文本文件以供以后阅读? 执行以下命令。

systemctl list-unit-files --type=service > ~/service-files.txt

您可以随时使用下面的 cat 命令查看文本文件。

cat ~/service-files.txt

使用 Systemd 显示单个服务的状态

虽然知道如何列出所有 Systemd 服务(活动和非活动的)很有帮助,但知道如何单独列出服务的状态也很有用。 这是如何做到的。

  如何在缩放中设置个人资料图片

首先,打开一个终端窗口。 终端窗口打开后,对特定服务使用 systemctl status 命令。 例如,要查找“NetworkManager.service”的状态,请运行以下命令。

systemctl status NetworkManager

如果您想将状态命令的输出导出到文本文件以供以后阅读,您可以输入以下命令。

systemctl status MyService > ~/MyService-status.txt

要查看此文件,请执行以下 cat 命令。

cat ~/MyService-status.txt