Supervisor介紹 Supervisor 允許其用戶在UNIX類操作系統上控制多個進程。 塊如下: 方便 需要為每個進程實例編寫rc.d腳本通常是不方便的。 rc.d腳本是進程初始化/自動啟動/管理的常用形式,但寫入和維護可能會很痛苦。此外,rc.d腳本不能自動重新啟動崩潰的進程,並且許多程式 ...
Supervisor介紹
Supervisor 允許其用戶在UNIX類操作系統上控制多個進程。 塊如下:
方便
需要為每個進程實例編寫rc.d腳本通常是不方便的。 rc.d腳本是進程初始化/自動啟動/管理的常用形式,但寫入和維護可能會很痛苦。此外,rc.d腳本不能自動重新啟動崩潰的進程,並且許多程式在崩潰時不會正常重新啟動。Supervisord啟動進程作為其子進程,並可以配置為在崩潰時自動重新啟動它們。它也可以自動配置為在其自身的調用中啟動進程。
準確性
在UNIX上的進程通常很難獲得準確的上/下狀態。Pidfiles經常說謊。Supervisord啟動進程作為子進程,所以它總是知道它的子進程的真正的上/下狀態,可以方便地查詢這些數據。
進程組
進程通常需要以組為單位啟動和停止,有時甚至在“優先順序順序”中。人們常常難以解釋這一點。Supervisor 允許您為進程分配優先順序,並允許用戶通過supervisorctl客戶端發出命令,如“全部啟動”和“重新啟動所有”,以預分配的優先順序順序啟動它們。此外,進程可以分組為“進程組”,一組邏輯關聯進程可以作為一個單元停止並啟動。
特征
簡單
Supervisor通過簡單的INI風格的配置文件進行配置,易於學習。它提供了許多每個進程選項,使您的生活更容易,如重新啟動失敗的進程和自動日誌輪換。
集中
進程可以單獨或分組控制。您可以配置Supervisor以提供本地或遠程命令行和Web界面。
高效
Supervisor通過fork / exec啟動其子進程,子進程不進行後臺進程。
擴展性強
Supervisor有一個簡單的事件通知協議,用任何語言編寫的程式都可以用來管理它,還有一個用於控制的XML-RPC介面。它還使用可以由Python開發人員利用的擴展點構建。
相容
supervisor除Windows之外。它在Linux,Mac OS X,Solaris和FreeBSD上進行了測試和支持。它完全用Python編寫,因此安裝不需要C編譯器。
穩定性
Supervisor已經存在多年,並已在許多伺服器上使用。
Supervisor 組件
supervisord
supervisord服務端程式。它負責在自己的調用中啟動子程式,響應客戶端的命令,重新啟動崩潰或退出的子進程,記錄其子進程stdout和stderr 輸出,以及生成和處理對應於子進程生命周期中的“事件”。
配置文件。這通常位於/etc/supervisord.conf中。此配置文件是“Windows-INI”樣式的配置文件。適當的文件系統許可權來保護此文件非常重要,因為它可能包含未加密的用戶名和密碼。
supervisorctl
supervisor的命令行客戶端名為 supervisorctl。它為supervisor提供的功能提供了一個類似shell的界面。從supervisorctl,用戶可以連接到不同的 supervisord,停止和啟動的子進程,並獲得運行的進程的列表supervisord。
命令行客戶端通過UNIX域套接字或Internet(TCP)套接字與伺服器通信。伺服器可以斷言客戶端的用戶在允許他執行命令之前應該出現認證憑證。客戶端進程通常使用與伺服器相同的配置文件,但其中具有[supervisorctl]部分的任何配置文件都可以正常工作。
Web Server
Web Server 可以通過瀏覽器訪問查看和控制進程狀態,在置文件的[inet_http_server]塊里配置,訪問伺服器URL(例如http:// localhost:9001 /)以通過Web界面查看和控制進程狀態。
XML-RPC介面
服務於Web UI的相同的HTTP伺服器提供了一個XML-RPC介面,可用於詢問和控制supervisor及其運行的程式。請參閱XML-RPC API文檔。
安裝使用方法 點擊這裡 wuguiyunwei.com