如何为 systemd 服务提供重启计数

How to provide a restart count to systemd service

我有一个嵌入式设备,它使用 systemd 管理其各种服务。我们的状态报告应用程序就是这些服务之一。它始终处于打开状态,并在出现故障时自动重启(崩溃、异常、OOM 条件等)。

我们在设备重启(技术上应用程序重启)时向我们的云服务报告事件,但我想区分首次启动(重启后)和重启。 systemd 中是否有内置机制可以提供服务重启计数,或者我需要滚动自己的方法?

你有期刊吗?如果你这样做,那么你可以得到这样的计数:

journalctl -b -u myservicename.service |grep -c Started

-b 选项将日志限制为当前引导; -u 限制参数中的服务。

然后你对 "Started" 行进行 grep,并告诉 grep 只给你匹配的数量。

您可以使用以下命令:

systemctl show foo.service -p NRestarts

如果服务处于重启循环中,它将return一个值,否则,return什么都不会。