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