如何在 upstart 中实现每隔 x 小时预防性重启一次服务?

如何在 upstart 中实现每隔 x 小时预防性重启一次服务?

我有一个组件 --- 由 upstart 启动 --- 有一个错误。该错误导致应用程序冻结,不幸的是,它没有崩溃。

作为临时解决办法,我想强制服务每 x 小时重启一次,以免错误导致应用程序冻结。使用 upstart 可以实现吗?

我可以为其实现一个 cron 作业,但我更愿意将其保留在 upstart 中,以便将所有启动逻辑集中在一个地方。

答案1

我希望您使用脚本外部的“重新加载”或“重新启动”选项来执行此操作。请参阅 mysql 和 apache 作为示例:“service apache restart”。

修改你的 upstart 脚本,使其具有“重启”功能,然后将其作为命令添加到“/etc/crontab”。

是的,我知道这不是您想要的答案,但我还希望 upstart 脚本在冻结且没有崩溃的情况下不会自行重新启动。“oncrash”可以触发重新启动,但“onfreeze”可能无法检测到。


第 16 章 守护进程行为获得一些关于这方面的提示。

相关内容