我知道 systemctl 本身应该为我提供所有正在运行的服务,并且使用 systemctl status (带有应用程序名称,即 foobar)为我提供有关该服务的更多详细信息。不过我注意到我也可以运行 systemctl status 并获取输出,但它与 systemctl 本身不同。
那么它显示的是什么呢?
似乎它默认显示降级的服务:
State: degraded
Jobs: 0 queued
Failed: 3 units
Since: Sun 2016-03-27 01:42:15 UTC; 2h 49min ago
答案1
如果不带参数执行systemctl
,则默认行为是systemctl list-units
。
从systemctl
联机帮助页:
list-units [PATTERN...]
列出已知单位(受 指定的限制的约束
-t
)。如果指定了一个或多个 PATTERN,则仅显示与其中之一匹配的单元。这是默认命令。
如果您指定该选项status
status [PATTERN...|PID...]
显示有关一个或多个单元的简洁运行时状态信息,后跟日志中的最新日志数据。如果未指定单位,则显示系统状态。如果与 结合使用
--all
,还显示所有单元的状态(受 指定的限制的约束-t
)。如果传递了 PID,则显示有关进程所属单元的信息。此函数旨在生成人类可读的输出。如果您正在寻找计算机可解析的输出,请使用 show 代替。默认情况下,此函数仅显示 10 行输出,并省略行以适合终端窗口。这可以使用
--lines
和进行更改--full
,请参见上文。另外,journalctl --unit=NAME
或者journalctl --user-unit=NAME
使用类似的消息过滤器可能会更方便。