如何让Supervisord无条件运行?

时间:2014-04-26 22:05:40

标签: linux daemon supervisord long-running-processes server-administration

在Supervisord配置文件中,您可以指定使用以下命令自动重启某个程序:

autorestart=true

但[Supervisord]本身是否相同? 什么是确保Supervisord无条件继续运行的推荐方法,特别是如果Supervisord进程被杀死。

谢谢!

1 个答案:

答案 0 :(得分:3)

实际上你的问题是着名的" Quis custodiet ipsos custodes的特定应用?"那是"谁来守卫守卫?"。

在现代Linux系统中,中央保护点是init进程(进程号1)。如果init死亡,Linux内核会立即发生恐慌,因此您必须前往数据中心(我的意思是继续),然后按reset按钮。有许多替代init实施,here是其中一个"比较表" :)

如何配置特定init实现的准确答案取决于您在该系统中使用的init版本。例如systemd有一个自己的机制,用于配置服务在死亡时重启(指令Restart=RestartSec=WatchdogSec=等在相应的unit-file中。其他init实现像Ubuntu Upstart在服务配置文件中也有它的类似物(respawn directive。)即使旧的好的SysV init也有respawn的服务项/etc/inittab选项,但通常用户级服务不是#39; t直接启动inittab,只启动虚拟控制台管理员(gettymgetty等)