如何从 systemctl 列出所有启用的服务?

如何从 systemctl 列出所有启用的服务?

我如何列出所有enabled服务systemctl

我知道运行systemctl命令本身会列出所有服务,但我只想获取这些enabled服务。

答案1

systemctl list-unit-files | grep enabled将列出所有已启用那些。

如果你想知道目前跑步, 你需要systemctl | grep running

使用您要查找的那个。已启用,并不意味着它正在运行。正在运行并不意味着它已启用。它们是两码事。

启用意味着系统将在下次启动时运行该服务。因此,如果您启用了某项服务,您仍然需要手动启动它,或者重新启动它才会启动。

正在运行意味着它实际上现在正在运行,但如果未启用,则重新启动时它将不会重新启动。

答案2

man systemctl状态:

--state=

参数应为逗号分隔的单元LOADSUBACTIVE状态列表。列出单元时,仅显示处于指定状态的单元。用于--state=failed仅显示失败的单元。

解释:

LOAD:反映单元定义是否正确加载。
ACTIVE:高级单元激活状态,即的泛化SUB
SUB:低级单元激活状态,值取决于单元类型。

不过您也可以使用它来仅显示enabled具有以下特征的单位:

systemctl list-unit-files --state=enabled

如果某个单元是 ,enabled则表示系统将在启动时启动它。虽然将某些单元设置为 ,但enabled实际上并不代表start它,因此您需要手动执行此操作,或者在将其设置为 后重新启动系统enabled

答案3

列出所有systemd服务state=activesub=running

systemctl list-units --type=service --state=running

列出所有systemd正在state=active运行或已退出的服务

systemctl list-units --type=service --state=active

答案4

有一个很好的 GUI 应用程序叫做 Stacer,您可以在其中管理所有服务。

在此处输入图片描述

检查其 Github 链接Stacer Github
另请检查网页了解更多信息

相关内容