1

在Supervisord conf文件,你可以指定自动重启具有一定的程序:如何保持Supervisord无条件运行?

autorestart=true 

但是是有[Supervisord]本身等同? 确保Supervisord无条件继续运行的建议方法是什么,特别是如果Supervisord进程被杀死的话。

谢谢!

回答

3

其实你的问题是着名的“Quis custodiet ipsos custodes?”的特定应用程序?那就是“谁来守卫守卫?”。

在现代Linux系统中,中央防护点是init进程(进程号1)。如果init死亡,Linux内核立即发生混乱,因此您必须转到您的数据中心(我的意思是继续),然后按reset按钮。还有的是一个很大的替代init实现,here是那些“对照表” :)

确切的答案如何配置特定init实现取决于你在系统中使用什么init版本之一。例如systemd拥有自己的配置服务重启机制(指令Restart=RestartSec=WatchdogSec=等在相应的unit-file。其他初始化实现,如Ubuntu的Upstart也有它的类似物(respawn directive在服务配置文件)甚至旧的好SysV初始化具有用于/etc/inittab服务线respawn选项,但通常用户级服务未启动直接inittab中,只有虚拟控制台管理器(gettymgetty等)

+0

感谢。所以我们在Ubuntu上,我们实现一个init .d脚本,看起来当我们杀死supervisord进程时,它不会再回来。任何想法init.d的一些常见原因没有保持活着daemoni zed进程? – chinnychinchin