我正在尋找可以從 CLI 控制的進程管理器(新增、啟動、停止、刪除),這樣我就可以透過程式控制它。
我嘗試過使用https://github.com/circus-tent/circus,但問題是當我從 CLI 添加它時,進程在伺服器重新啟動後消失。我在那裡開了一個問題;https://github.com/circus-tent/circus/issues/937。我還沒有嘗試過 Supervisord,但似乎有同樣的問題,https://github.com/mnaberez/supervisor_twiddler/issues/4。
是否有任何進程管理器可以從 CLI 添加守護進程,並且更改在重新啟動後仍然存在,而無需觸及配置文件?謝謝。
我在 Centos 7 上,我想為每個註冊用戶守護一個 PHP CLI 腳本。
抱歉,我不知道如何更好地解釋這一點。我有一個具有無限循環的 PHP CLI 腳本。該腳本正在運行以偵聽新傳入的訊息。腳本應在新註冊用戶(例如 )上啟動php listen.php --user_id=111
,並在刪除用戶時停止。
答案1
我為此推薦的軟體包daemontools
由 Dan Bernstein 調用。
這是提供系統範圍服務監督和管理服務的工具集合。它不僅關心服務的啟動和停止,還監控服務守護程式的運作。除此之外,它提供了一個可靠的介面來向服務守護程序發送訊號,而無需 pid 文件,以及具有自動日誌文件輪轉和磁碟空間限制的日誌設施。
它滿足您的所有要求。它非常可靠,一旦您設定並了解如何使用它,就幾乎不需要維護。如果你的系統有問題,那不是daemontools的問題。
- 所有控制均透過命令列進行。
- 系統重新啟動時,守護程式將重新啟動。
- 可以從 CLI 停止、啟動、停止、掛起守護程序。
- 另外,也處理每個守護程式的日誌記錄。
- 它管理快速重新啟動(當程式快速終止時)。
這個封裝和底層設計堅如磐石。原始碼多年來沒有改變,但不要被它欺騙了。它不需要改變,因為它是正確的。
我個人曾使用此軟體包一次可靠地控制一台電腦上的數百個守護程式。
配置新客戶端很簡單,只需將控制檔放在指定目錄中,它就會自動啟動並永遠重新啟動,除非您幹預。一旦您知道文件應該是什麼樣子,您就可以建立一個範本或一種參數化控製文件建立的方法。
我認為你最好的選擇是從 github 上的 kteru 獲取 RPM 原始碼包並從中建立自己的 RPM。它很容易構建,但 RPM 將使管理和複製系統變得更加容易。
主頁和文件位於http://cr.yp.to/daemontools.html
CentOS 4-7 RPM源碼包可在github上取得: https://github.com/kteru/daemontools-rpm
還有一個名為的軟體包runit
,我認為它是一個分支,daemontools
沒有一些許可和分發限制,daemontools
並且具有更靈活的目錄佈局策略。它在 Debian 存儲庫中,我不知道 CentOS 是否如此。