工作需要,找點資料學習下:
Supervisor(http://supervisord.org )是用Python開發的一個clien&t/server服務,是Linux/Unix系統下的一個程序管理工具,不支援Windows系統。它可以很友善的監聽、啟動、停止、重新開機一個或多個程序。用Supervisor管理的程序,當一個程序意外被殺死,supervisort監聽到程序死後,會自動将它重新拉起,很友善的做到程序自動恢複的功能,不再需要自己寫shell腳本來控制。
因為Supervisor是Python開發的,安裝前先檢查一下系統否安裝了Python2.4以上版本。下面以CentOS7,Python2.7版本環境下,介紹Supervisor的安裝與配置步聚:
1) 安裝easy_install (python包管理器)
<code>yum install easy_install</code>
2)安裝supervisor
<code>easy_install supervisor</code>
Debain/Ubuntu版本:
supervisor安裝完成後會生成三個執行程式:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守護程序服務(用于接收程序管理指令)、用戶端(用于和守護程序通信,發送管理程序的指令)、生成初始配置檔案程式。
首先生成配置檔案:
程序管理配置參數,不建議全都寫在supervisord.conf檔案中,應該每個程序寫一個配置檔案放在include指定的目錄下包含進supervisord.conf檔案中。
接着就可以用控制了
注意:
Supervisor隻能管理非daemon的程序,也就是說Supervisor不能管理守護程序。否則提示Exited too quickly (process log may have details)異常。例子中的Tomcat預設是以守護程序啟動的,是以我們改成了catalina.sh run,以前台程序的方式運作。
如果command的欄運作的是shell腳本,那麼在shell 腳本啟動被監控程式時要用exec修飾。例如:
否則,supervisord停止不了啟動的程序.除此之外,shell腳本裡不能出現&之類的背景運作符号。