我正在尝试创建一个 systemd 文件来监视服务并在服务崩溃时重新启动它。这是棘手的部分:如果服务在一分钟内崩溃超过 5 次,我想将其标记为失败并停止尝试自动重新启动它。对于 Upstart,这可以通过“重生限制”轻松完成。
Systemd 可以使用 StartLimitIntervalSec 对自动重新启动进行速率限制,但这不是我想要的。我不想仅仅限制重新启动的速率,而是在达到限制时完全放弃。
答案1
来自systemd.unit(5)
联机帮助页,位于StartLimitIntervalSec=, StartLimitBurst=
:
请注意,配置为 Restart= 且达到启动限制的单元将不再尝试重新启动;但是,它们仍然可以在稍后的时间点手动重新启动,从那时起,重新启动逻辑将再次激活。请注意,systemctl Reset-failed 将导致刷新服务的重新启动率计数器,如果管理员想要手动启动一个单元并且启动限制会干扰该操作,则这非常有用。
…所以看来 systemd 的启动速率限制可以满足您的要求。