oceanBT Asked: 2016-07-06 10:17:45 +0800 CST2016-07-06 10:17:45 +0800 CST 2016-07-06 10:17:45 +0800 CST 如何从 systemctl 列出所有启用的服务? 772 如何列出所有enabled服务systemctl? 我知道运行systemctl命令本身会列出所有服务,但我只想获取这些服务enabled。 services 8 个回答 Voted Best Answer Delorean 2016-07-06T10:52:33+08:002016-07-06T10:52:33+08:00 systemctl list-unit-files | grep enabled将列出所有启用的。 如果您想要哪些当前正在运行,则需要systemctl | grep running. 使用您正在寻找的那个。启用,并不意味着它正在运行。运行并不意味着它已启用。他们是两个不同的东西。 启用意味着系统将在下次启动时运行该服务。所以如果你启用了一个服务,你仍然需要手动启动它,或者重启它就会启动。 运行意味着它现在实际上正在运行,但如果它没有启用,它不会在你重新启动时重新启动。 user364819 2016-07-06T10:58:01+08:002016-07-06T10:58:01+08:00 man systemctl状态: --state= 参数应该是一个以逗号分隔的 unit LOAD、SUB或ACTIVEstates 列表。列出单位时,仅显示处于指定状态的单位。用于--state=failed仅显示失败的单元。 解释: LOAD:反映单元定义是否正确加载。 ACTIVE:高级单元激活状态,即 的泛化SUB。 SUB:低级单元激活状态,值取决于单元类型。 尽管您也可以使用它来仅显示enabled具有以下内容的单位: systemctl list-unit-files --state=enabled 如果一个单元是enabled这意味着系统将在启动时启动它。尽管将某些内容设置为enabled实际上并没有start,但您需要手动执行此操作,或者在将其设置为enabled. Ankit Kumar Honey 2017-09-14T19:59:00+08:002017-09-14T19:59:00+08:00 列出所有systemd在state=active和sub=running systemctl list-units --type=service --state=running 列出所有systemd正在state=active运行或退出的服务 systemctl list-units --type=service --state=active nix-power 2018-07-31T08:51:24+08:002018-07-31T08:51:24+08:00 要查看“已启用”服务,包括仍在 upstart/init 运行的服务: systemctl list-unit-files --type service --state enabled,generated 要查看所有当前正在运行的服务运行: systemctl list-units --type service --state running panticz 2019-09-03T07:41:37+08:002019-09-03T07:41:37+08:00 还概述了所有活动和失败的服务: systemctl list-units --type service --state running,failed yathomasi 2020-01-15T03:36:36+08:002020-01-15T03:36:36+08:00 有一个很好的 GUI 应用程序,称为 Stacer,您可以在其中管理所有服务。 查看其 Github 链接Stacer Github 另请查看Web以获取更多信息 smac89 2020-12-05T00:04:38+08:002020-12-05T00:04:38+08:00 除了当前的答案之外,我还使用以下内容来获取服务的名称: systemctl list-units --type=service --state=active,running | awk '/.*\.service/ {print $1}' 而不是表格格式,这使得将这些服务通过管道传输到另一个程序变得更容易 RafDouglas C. Tommasi 2022-07-06T01:02:13+08:002022-07-06T01:02:13+08:00 systemctl 单元模板呢? 要列出模板单元,您可能需要使用: systemctl list-units --all|grep yourservice 该--all开关还显示所有已实例化的单元 systemctl <service_name>@<argument>.service 从手册页: 使用 list-units 列出单位时,还显示非活动单位和跟随其他单位的单位。显示单元/作业/经理属性时,无论是否设置,都显示所有属性。 例子: systemctl openvpn@my_office_endopoint.service 进一步阅读: https ://fedoramagazine.org/systemd-template-unit-files/
systemctl list-unit-files | grep enabled
将列出所有启用的。如果您想要哪些当前正在运行,则需要
systemctl | grep running
.使用您正在寻找的那个。启用,并不意味着它正在运行。运行并不意味着它已启用。他们是两个不同的东西。
启用意味着系统将在下次启动时运行该服务。所以如果你启用了一个服务,你仍然需要手动启动它,或者重启它就会启动。
运行意味着它现在实际上正在运行,但如果它没有启用,它不会在你重新启动时重新启动。
man systemctl
状态:解释:
LOAD
:反映单元定义是否正确加载。ACTIVE
:高级单元激活状态,即 的泛化SUB
。SUB
:低级单元激活状态,值取决于单元类型。尽管您也可以使用它来仅显示
enabled
具有以下内容的单位:如果一个单元是
enabled
这意味着系统将在启动时启动它。尽管将某些内容设置为enabled
实际上并没有start
,但您需要手动执行此操作,或者在将其设置为enabled
.列出所有
systemd
在state=active
和sub=running
列出所有
systemd
正在state=active
运行或退出的服务要查看“已启用”服务,包括仍在 upstart/init 运行的服务:
要查看所有当前正在运行的服务运行:
还概述了所有活动和失败的服务:
有一个很好的 GUI 应用程序,称为 Stacer,您可以在其中管理所有服务。
查看其 Github 链接Stacer Github
另请查看Web以获取更多信息
除了当前的答案之外,我还使用以下内容来获取服务的名称:
而不是表格格式,这使得将这些服务通过管道传输到另一个程序变得更容易
systemctl 单元模板呢?
要列出模板单元,您可能需要使用:
systemctl list-units --all|grep yourservice
该
--all
开关还显示所有已实例化的单元systemctl <service_name>@<argument>.service
从手册页:
例子:
systemctl openvpn@my_office_endopoint.service
进一步阅读: https ://fedoramagazine.org/systemd-template-unit-files/