Linux 如何保持Supervisord无条件运行?

Linux 如何保持Supervisord无条件运行?,linux,daemon,supervisord,long-running-processes,server-administration,Linux,Daemon,Supervisord,Long Running Processes,Server Administration,在Supervisord conf文件中,您可以指定使用以下命令自动重新启动某个程序: autorestart=true 但[监管命令]本身是否有一个等价物? 建议使用什么方法来确保Supervisord继续无条件运行,特别是在Supervisord进程被终止时 谢谢 实际上,你的问题是著名的“Quis-custodiet-ipsos-custodes”的一个特殊应用,即“谁来守卫守卫?” 在现代Linux系统中,中心保护点是initprocess(进程编号1)。如果init死亡,Linux内

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

autorestart=true
但[监管命令]本身是否有一个等价物? 建议使用什么方法来确保Supervisord继续无条件运行,特别是在Supervisord进程被终止时


谢谢

实际上,你的问题是著名的“Quis-custodiet-ipsos-custodes”的一个特殊应用,即“谁来守卫守卫?”

在现代Linux系统中,中心保护点是
init
process(进程编号1)。如果
init
死亡,Linux内核会立即恐慌,因此您必须去数据中心(我的意思是开始)并按下
reset
按钮。有很多可选的
init
实现,是其中一个“比较表”:


如何配置特定的
init
实现的确切答案取决于您在该系统中使用的
init
版本。例如,
systemd
有自己的机制,用于在其死亡时配置服务重启(指令
restart=
RestartSec=
WatchdogSec=
等)。其他init实现,如Ubuntu Upstart,也有类似的机制(在服务配置文件中)。即使是旧的好的SysV init在
/etc/inittab
中也有服务行的
重新启动
选项,但通常用户级服务不会直接启动inittab,只有虚拟控制台管理器(
getty
mgetty
等)

谢谢。我们现在在Ubuntu上,我们实现了一个init.d脚本,当我们杀死supervisord进程时,它似乎不会再出现了。知道init.d不能保持守护进程活动的常见原因是什么吗?