我如何在upstart,runit,supervisor,daemontools等之间进行选择,以便在程序死亡时重新启动它?

我有一个Nginx Web代理,gunicorn Web服务器和一个 python / flask web应用程序. Gunicorn进程显然已经死亡,我希望通过查看可以监视并重新启动gunicorn进程的实用程序来改善它,以便它再次崩溃.

我找到了几个可以完成这项工作的人:

>新贵
> runit
>主管
> daemontools
>还有更多

是否有一篇全面的文章比较和对比用于监控和重启流程的各种实用程序?

解决方法

如果您的发行版使用Upstart,请使用它.它对作业重启具有非常基本的支持,但包括可以阻止重启循环的限制,如@EEAA所述.

如果您的操作系统使用其他init程序,请不要更改它.我不能真正帮助你使用你提到的其他工具,因为我通常使用Ubuntu,其中Upstart仍然存在(截至最新的LTS),所以我与它们几乎没有关系.但是创建一个简单的脚本并不是一项艰巨的任务,该脚本每分钟从cron运行一次(或者更频繁地在一个循环中运行),这可以检查PID是否存在并在失败时发出重启.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...