一、supervisor是什麼 Linux的後臺進程運行有好幾種方法,例如nohup,screen等,但是,如果是一個服務程式,要可靠地在後臺運行,我們就需要把它做成daemon,最好還能監控進程狀態,在意外結束時能自動重啟。 supervisor就是用Python開發的一套通用的進程管理程式,能將 ...
一、supervisor是什麼
Linux的後臺進程運行有好幾種方法,例如nohup,screen等,但是,如果是一個服務程式,要可靠地在後臺運行,我們就需要把它做成daemon,最好還能監控進程狀態,在意外結束時能自動重啟。
supervisor就是用Python開發的一套通用的進程管理程式,能將一個普通的命令行進程變為後臺daemon,並監控進程狀態,異常退出時能自動重啟。
二、安裝及使用
1.安裝 pip install supervisor # supervisor目前只支持python2,但是作為容器來說,並不影響監控程式是python3的程式 2.生成配置文件 echo_supervisord_conf > supervisord.conf #在當前目錄下生成 3.啟動supervisor supervisord -c supervisord.conf # -c 用來指定配置文件 4.其他常用命令 supervisorctl -c supervisord.conf # 啟動命令行模式,命令行模式使用的配置文件註意一定要和啟動supervisor時的配置文件一致 help : 幫助 update : 重新讀取配置文件,並重啟 restart all : 重啟所有進程,不會重新讀取配置文件 start all : 啟動所有進程 start <name> : 啟動某個進程 status : 獲取所有進程信息 stop all : 停止所有進程 stop <name> : 停止某個進程
三、添加應用
常用配置, ; 代表註釋
; ================================ ; uwsgi supervisor ; ================================ [program:uwsgi] ; :後是自定義的名稱,在supervisorctl下可以通過 start uwsgi 來啟動該進程 command=/path/to/bin/uwsgi --die-on-term --ini /path/to/uwsgi.ini ; 執行的命令,即在命令行中是如何使用該命令的 --die-on-term keep uwsgi cpu rate low; numprocs=1 ; 啟動的進程個數,可以同時啟動多個進程 stdout_logfile=/var/log/uwsgi/out.log ; 輸出日誌位置,目錄需要創建,並且如果不是root用戶執行需要更改目錄許可權 chown -R username:username /var/log/uwsgi/out.log,下同 stderr_logfile=/var/log/uwsgi/err.log ; 錯誤日誌位置 autostart=true ; 自動啟動 autorestart=true ; 自動重啟 priority=997 ; 啟動的優先順序,數字越大,級別越高,如該進程需要比其他進程先啟動,則優先順序則設置為更高
四、更多
參考官方文檔:http://www.supervisord.org