我一直在开发一个 systemd 服务来包装管理脚本,我正在尝试优雅地处理它完全中断。
现在我已经Restart
设置为always
所以当出现故障时它会再次尝试,但一些故障状态需要注意(缺少配置文件、错误的 SQL 等),所以我不希望它在不可纠正的状态下在后台持续旋转。
我发现StartLimitInterval
, StartLimitBurst
, 和StartLimitAction
在 Y 秒内 X 次失败后停止尝试重新启动它,但事实证明,唯一可用的操作StartLimitAction
是重新启动或关闭机器,这有点矫枉过正。
我一直在研究OnFailure
并编写了一个迷你服务,在它被触发时发送警报电子邮件,但 OnFailure 每次服务终止时都会触发,而不是在达到开始限制时触发,所以我们收到了一堆电子邮件而不是一个。
下一步尝试什么的任何想法?
小智 3
失败时=
当该单元进入“失败”状态时激活的一个或多个单元的以空格分隔的列表。仅在达到启动限制后,使用 Restart= 的服务单元才会进入故障状态。
然而,第二句话似乎是一个新的限制,因为它出现在我的 Arch 安装上的 systemd 版本 241 的手册中,但不在我的 CentOS 7 安装的版本 219 中。
您可以使用以下命令检查您的 systemd 版本systemctl --version
我知道这是一个老问题,但只是想与有同样问题的其他人分享。
归档时间: |
|
查看次数: |
8337 次 |
最近记录: |