我有一個 Nginx Web 代理、gunicorn Web 伺服器和一個 python/flask Web 應用程式。 Gunicorn 進程顯然已經死掉了,我想在未來透過研究一個實用程式來改善這種情況,該實用程式可以在 Gunicorn 進程再次崩潰時監視並重新啟動它。
我發現了幾個可以完成這項工作的進程監控實用程式:
- 守護程式工具
- 發射
- 運行
- s6
- 導師
- 系統D
- 暴發戶
- …
是否有一篇全面的文章比較和對比用於監視和重新啟動進程的各種實用程式?
答案1
答案2
如果您的發行版使用 Upstart,請使用它。它對作業重新啟動有非常基本的支持,但包括可以防止重新啟動循環的限制,如 @EEAA 所提到的。
如果您的作業系統使用其他 init 程序,請不要更改它。我無法真正幫助你使用你提到的其他工具,因為我通常使用 Ubuntu,其中 Upstart 仍然存在(截至最新的 LTS),所以我與它們關係不大。但創建一個運行的簡單腳本並不是一項艱鉅的任務計劃任務每分鐘一次(或更頻繁地在循環中),它可以檢查 PID 是否存在並在失敗時重新啟動。