原文地址:http://blog.csdn.net/u012374229/article/details/47158435python
注意:如下代碼,命令和配置在ubuntu14.04LTS上實際測試,其餘發行版或ubuntu其餘版本僅供參考sql
sudo apt-get install supervisor
安裝成功後,supervisor就會默認啓動shell
[program:test] command=python -m SimpleHTTPServer
重啓supervisor,讓配置文件生效,而後啓動test進程:ubuntu
supervisorctl reload
supervisorctl start test
若是要中止進程,就用stop
其餘一些配置,經過這個例子講解bash
[program:meta.txn.recover.on.error] command=/cas/bin/meta.txn.recover.on.error ; 被監控的進程路徑 numprocs=1 ; 啓動幾個進程 directory=/cas/bin ; 執行前要不要先cd到目錄去,通常不用 autostart=true ; 隨着supervisord的啓動而啓動 autorestart=true ; 自動重啓。。固然要選上了 startretries=10 ; 啓動失敗時的最多重試次數 exitcodes=0 ; 正常退出代碼(是說退出代碼是這個時就再也不重啓了嗎?待肯定) stopsignal=KILL ; 用來殺死進程的信號 stopwaitsecs=10 ; 發送SIGKILL前的等待時間 redirect_stderr=true ; 重定向stderr到stdout stdout_logfile=logfile ; 指定日誌文件
經常使用命令:
supervisorctl start programxxx,啓動某個進程服務器
supervisorctl restart programxxx,重啓某個進程測試
supervisorctl stop groupworker: ,重啓全部屬於名爲groupworker這個分組的進程(start,restart同理)ui
supervisorctl stop all,中止所有進程,注:start、restart、stop都不會載入最新的配置文件。spa
supervisorctl reload,載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。.net
supervisorctl update,根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。
supervisor啓動和中止的日誌文件存放在/var/log/supervisor/supervisord.log
注意:顯式用stop中止掉的進程,用reload或者update都不會自動重啓