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