我想要一种快速而简单的方法来告诉 systemd 管理的服务已重新启动了多少次(即像计数器一样)。那存在吗?
答案1
该计数器已被添加,可以使用以下命令访问:
systemctl show foo.service -p NRestarts
如果服务处于重新启动循环中,它将返回一个值,否则,将不返回任何内容。
答案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 添加计数器的想法: