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


279

如何列出所有enabled服务systemctl

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


您启用是什么意思?您的意思是正在运行的服务?
2016年

7
@Gen启用服务与启动服务大不相同。请参阅man systemctl
乔斯

迷人。评分最低的答案是最“正确”的答案,即使它显然不是最佳答案。这个极好的问题(及其答案)是一个有趣的例子,说明systemd如何违反Unix&Co长期存在的(出色的)设计原则。 / systemctl可以完全满足他的要求(大多数有经验的用户只会考虑做到这一点)。我开始更清楚地看到为什么Linus Torvalds如此强烈地批评systemd。
BISI

Answers:


411

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

如果您想要当前正在运行的设备,则需要systemctl | grep running

使用您要寻找的那个。已启用,并不意味着它正在运行。运行并不意味着它已启用。他们是两个不同的东西。

启用表示系统将在下次启动时运行该服务。因此,如果启用了服务,则仍然需要手动启动或重新启动服务才能启动。

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


5
不得不使用外部工具(grep)来显示此重要信息很烦人。但感谢您为我们提供了指导:)
费利佩·阿尔瓦雷斯

34
@FelipeAlvarez正确。但这就是Linux的工作方式。许多小型二进制文件相互配合。systemctl执行要求的操作,列出服务。由于grep已经存在并且可以对任何程序的输出进行良好处理,因此systemctl中没有内置的过滤命令。一直如此:)
Dorian

3
我同意,应该这样。但是,systemd已经尝试做很多事情,我不知道为什么它不能列出已启用的服务?
费利佩·阿尔瓦雷斯

5
systemctl | grep running不要向我列出任何东西!即使某事正在运行,他的身份也只列出来了:enabled, disabled, masked, static
Cirelli94 '17

27
更简单:systemctl list-unit-files --state=running

93

man systemctl 状态:

--state=

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

说明:

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

尽管您也可以使用此选项仅显示enabled具有以下内容的单位:

systemctl list-unit-files --state=enabled

如果是一个单元,则enabled意味着系统将在启动时启动它。尽管将某项设置为enabled其实也没有start,所以您将需要手动执行此操作,或者将其设置为之后重新启动系统enabled


5
要启用并开始在同一时间:systemctl enable --now ...
的Aurelien奥姆斯

1
--state=enabled对systemd版本215(在Raspbian 8 Jessie上)没有影响,但是对systemd版本229(在Ubuntu 16.04.03 Xenial上)有效。
mpb

@mpb:但是,它在Arch Linux的235版本上工作得很好。

64

要列出所有的systemd这些都在服务state=activesub=running

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

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

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

12

要查看“启用的”服务,包括仍处于新贵/初始运行状态的服务,请执行以下操作:

systemctl list-unit-files --type service --state enabled,generated

要查看所有当前正在运行的服务,请执行以下操作:

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

不幸的是,两个列表中的服务名称可以不同-例如sshdvs. sshsyslogvs rsyslog.。
OrangeDog

唯一的“ non grep”正确答案。虽然不确定为什么会提到暴发户……
rogerdpack

2

同时概述所有活动和失败的服务:

systemctl list-units --type service --state running,failed
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.