我如何列出所有enabled
服务systemctl
?
我知道运行systemctl
命令本身会列出所有服务,但我只想获取这些enabled
服务。
答案1
systemctl list-unit-files | grep enabled
将列出所有已启用那些。
如果你想知道目前跑步, 你需要systemctl | grep running
。
使用您要查找的那个。已启用,并不意味着它正在运行。正在运行并不意味着它已启用。它们是两码事。
启用意味着系统将在下次启动时运行该服务。因此,如果您启用了某项服务,您仍然需要手动启动它,或者重新启动它才会启动。
正在运行意味着它实际上现在正在运行,但如果未启用,则重新启动时它将不会重新启动。
答案2
man systemctl
状态:
--state=
参数应为逗号分隔的单元
LOAD
、SUB
或ACTIVE
状态列表。列出单元时,仅显示处于指定状态的单元。用于--state=failed
仅显示失败的单元。
解释:
LOAD
:反映单元定义是否正确加载。
ACTIVE
:高级单元激活状态,即的泛化SUB
。
SUB
:低级单元激活状态,值取决于单元类型。
不过您也可以使用它来仅显示enabled
具有以下特征的单位:
systemctl list-unit-files --state=enabled
如果某个单元是 ,enabled
则表示系统将在启动时启动它。虽然将某些单元设置为 ,但enabled
实际上并不代表start
它,因此您需要手动执行此操作,或者在将其设置为 后重新启动系统enabled
。
答案3
列出所有systemd
服务state=active
sub=running
systemctl list-units --type=service --state=running
列出所有systemd
正在state=active
运行或已退出的服务
systemctl list-units --type=service --state=active