在Supervisord配置文件中,您可以指定使用以下命令自动重启某个程序:
autorestart=true
但[Supervisord]本身是否相同? 什么是确保Supervisord无条件继续运行的推荐方法,特别是如果Supervisord进程被杀死。
谢谢!
答案 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,只启动虚拟控制台管理员(getty
,mgetty
等)