systemd 可以显示服务重新启动的次数吗?

systemd 可以显示服务重新启动的次数吗?

我想要一种快速而简单的方法来告诉 systemd 管理的服务已重新启动了多少次(即像计数器一样)。那存在吗?

答案1

该计数器已被添加,可以使用以下命令访问:

systemctl show foo.service -p NRestarts

如果服务处于重新启动循环中,它将返回一个值,否则,将不返回任何内容。

https://github.com/systemd/systemd/pull/6495

答案2

systemctl 显示服务的上次启动时间(或正常运行时间)。但这还不足以说明服务重新启动了多少次。

以下命令可能可以显示启动(或重新启动)发生的次数:

日志控制 -u <service_name>.service | grep 开始

例如:

$ journalctl -u foo.service | grep Starting
Jul 24 16:09:56 10.16.26.1 systemd[1]: Starting foo...
Jul 25 18:12:14 10.16.26.1 systemd[1]: Starting foo...

此命令仅提供重新启动次数的计数:

日志控制 -u <service_name>.service | grep 开始 |厕所-l

例如:

$ journalctl -u foo.service | grep Starting | wc -l 
2

注意:您可以改变此处使用的字符串。您可以使用此“已启动”来判断服务是否已成功启动。或者您可以使用“ <service_name>.service failed”来告知服务失败的次数。

另外,有趣的是,他们一直在讨论在 GitHub 上向 systemd 添加计数器的想法:

https://github.com/systemd/systemd/issues/4126

相关内容