Systemd systemctl列出Linux上所有失败的单元/服务

时间:2020-01-09 10:43:49  来源:igfitidea点击:

在Linux上使用systemd时,是否有命令可以列出所有失败的单元或者服务?
您能告诉我systemctl命令列出Linux上所有失败的服务吗?
本快速教程介绍了如何使用systemctl命令在Linux操作系统上查找/列出所有失败的systemd服务/单元。

Systemd systemctl列出所有失败的单元/服务命令

systemctl命令用于控制systemd系统和服务管理。
要列出systemd当前在内存中的单元,请在Linux上按如下所示将list-units参数传递给systemctl:

sudo systemctl list-units --failed
## 或者
sudo systemctl list-units --state failed

systemctl命令选项以列出所有失败的单元/服务

关于失败选项的注释

我们可以检查Linux下任何指定的单元或者服务是否处于失败状态。
如果至少一个失败,则以下命令返回退出代码0,否则返回非零。
除非将--quiet选项传递给systemctl命令,否则这还将把当前设备状态打印到标准输出中。
因此,如果您知道服务或者单元名称,请尝试以下命令:

sudo systemctl is-failed {service-name-here}
sudo systemctl is-failed nginx.service
sudo systemctl is-failed vboxweb.service

另一个选择是运行以下简单命令以及grep命令,以使用systemctl列出失败的服务:

sudo systemctl list-units | grep -i failed

如何查找系统单元或者服务的状态

传递status选项,如下所示:

sudo systemctl status {service-name}
sudo systemctl status ssh.service
sudo systemctl status nginx.service
sudo systemctl status vboxweb.service

显示服务单元的属性

运行以下命令:

sudo systemctl show {service-name}
sudo systemctl show vboxweb.service

如何查看日志消息

日志消息可以提供有关可用于调试问题的服务的深入信息。
语法如下:

显示所有讯息

journalctl
journalctl | grep 'error'

仅显示内核消息

journalctl -k

在屏幕上查看实时消息

journalctl -f

如何仅查看特定于服务的消息

journalctl -u {service-name-here}
journalctl -u ssh.service
journalctl -u vboxweb.service