Linux的後臺進程運行有好幾種方法,例如nohup,screen等,可是,若是是一個服務程序,要可靠地在後臺運行,咱們就須要把它作成daemon,最好還能監控進程狀態,在乎外結束時能自動重啓。python
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> : 中止某個進程
經常使用配置, ; 表明註釋rest
; ================================ ; 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日誌