ubuntu 安裝supervisor
阿新 • • 發佈:2018-11-11
注意:以下程式碼,命令和配置在ubuntu14.04LTS上實際測試,其他發行版或ubuntu其他版本僅供參考
- 安裝
安裝可以使用一下命令:
sudo apt-get install supervisor
- 1
安裝成功後,supervisor就會預設啟動
- 使用
有很多方法新增程序,看了很多部落格上的介紹和加上我的實際使用,我認為一下方法最好用:
將每個程序的配置檔案單獨拆分,放在/etc/supervisor/conf.d/目錄下,以.conf作為副檔名,例如test.conf定義的一個簡單的HTTP伺服器:
[program:test]
command=python -m SimpleHTTPServer
- 1
- 2
重啟supervisor,讓配置檔案生效,然後啟動test程序:
supervisorctl reload
supervisorctl start test
- 1
- 2
如果要停止程序,就用stop
其他一些配置,通過這個例子講解
[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 ; 指定日誌檔案
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
常用命令:
supervisorctl start programxxx,啟動某個程序
supervisorctl restart programxxx,重啟某個程序
supervisorctl stop groupworker: ,重啟所有屬於名為groupworker這個分組的程序(start,restart同理)
supervisorctl stop all,停止全部程序,注:start、restart、stop都不會載入最新的配置檔案。
supervisorctl reload,載入最新的配置檔案,停止原有程序並按新的配置啟動、管理所有程序。
supervisorctl update,根據最新的配置檔案,啟動新配置或有改動的程序,配置沒有改動的程序不會受影響而重啟。
supervisor啟動和停止的日誌檔案存放在/var/log/supervisor/supervisord.log
注意:顯式用stop停止掉的程序,用reload或者update都不會自動重啟