Monitoring
確保程序始終執行
不久前,我開始使用 Cherokee 託管網站。對於外部源(FastCGI 等),如果找不到在指定套接字或埠上執行的程序,它可以選擇啟動程序。這很棒,因為這意味著如果 PHP 或 Django 站點發生故障(就像它們偶爾發生的那樣),它會自動重新啟動它。
在使用 PHP-FPM 的新伺服器上,我無法使用 Cherokee(它有一個 PHP 錯誤),所以我已經轉移到 NGINX。我真的很喜歡 NGINX(因為它的配置風格),但我遇到了嚴重的問題,即程序崩潰並且永遠不會重生。PHP 有時會這樣做,但 Django 站點更成問題。我已經為它們創建了初始化腳本,它們會在啟動時出現,但是如果它們在重新啟動之間出現問題,這對我沒有幫助。
我想我正在尋找一個 FastCGI 代理。像 Cherokee 這樣的東西,知道哪些程序應該在哪些套接字/埠上執行並按需重新生成它們。這樣的事情存在嗎?有什麼方法可以將它建構到 NGINX 中(為了便於配置)?
daemontools,特別是監督工具怎麼樣
supervise 監控一個服務。它啟動服務並在服務終止時重新啟動服務。設置一個新服務很容易:所有的監督需求都是一個目錄,裡面有一個執行該服務的腳本。
在inittab中重生