我有一个嵌入式设备,使用systemd管理其各种服务。我们的状态报告应用程序是其中之一。它始终处于开启状态,并在故障(崩溃、异常、OOM条件等)时自动重启。
我们会在设备重新启动(技术上是应用程序重新启动)时向云服务报告事件,但我想区分首次启动(重启后)和重启。systemd中是否有内置机制可以提供服务重启计数,或者我需要自己编写方法?
我有一个嵌入式设备,使用systemd管理其各种服务。我们的状态报告应用程序是其中之一。它始终处于开启状态,并在故障(崩溃、异常、OOM条件等)时自动重启。
我们会在设备重新启动(技术上是应用程序重新启动)时向云服务报告事件,但我想区分首次启动(重启后)和重启。systemd中是否有内置机制可以提供服务重启计数,或者我需要自己编写方法?
systemctl show foo.service -p NRestarts
如果服务处于重启循环中,它将返回一个值,否则将不返回任何内容。
你有日志吗?如果有,可以按照以下方式获取计数:
journalctl -b -u myservicename.service |grep -c Started