supervisor在centos7中預設自帶,無需單獨安裝,使用方便,可以管理本機服務,遠端服務,可配置顯示頁面,可以切割日誌
使用前先修改配置檔案/etc/supervisord.conf,開啟注釋及修改拉起服務配置目錄及檔案
# vim /etc/supervisord.conf
[include]
files =
/etc/supervisord
.d/*.conf
建立服務的配置,如backend服務
[program:backend]
command
=
/opt/***/init
.d
/backend
start
# 程式啟動方式,最好使用絕對路徑
directory =
/opt/***/init
.d
# 程式指令碼執行目錄
autostart =
false
# 是否跟隨supervisor啟動而啟動
user = blueset
# 啟動使用者
priority = 1
# 啟動優先順序,越小優先順序越高
startsecs = 1
# 啟動時長,啟動多長時間此程序依然存在則認為啟動正常
autorestart = unexpected
# 配合exitcodes使用,當程式的退出狀態不包含在exitcodes定義的列表中時,自動拉起該服務
exitcodes = 0
stopsignal = quit
# quit 終止訊號,還可以使用kill等其他linux標準訊號
stopasgroup =
true
# 是否停止程序組
killasgroup =
true
# 同上
redirect_stderr =
true
stdout_logfile =
/var/log/supervisor/backend_stdout
.log
# 定義程式輸出日誌位置(可以通過下面引數定期切割該日誌)
logfile_maxbytes = 50mb
# 按大小切割日誌
logfile_backups = 10
# 日誌儲存的份數
啟動supervisor程序,最好計入到開機自啟動中(可在修改完/etc/supervisord.conf後直接啟動)
# supervisord -c /etc/supervisord.conf
# echo 'supervisord -c /etc/supervisord.conf' >> /etc/rc.local
啟動supervisor管理的程序,如backend
# supervisorctl status # 此命令可以檢視所有管理的程序狀態
大功告成,正常情況下你的服務已經被管理起來了
下面是supervisorctl命令管理工具的一些使用方法
supervisorctl status
# 檢視所有的程序狀態
supervisorctl update
# 更新新的配置到supervisord(不會重啟原來已執行的程式)
supervisorctl reload
# 載入所有配置檔案,並按新的配置啟動、管理所有程序(會重啟原來已執行的程式)
supervisorctl start ***
# 啟動某個程序
supervisorctl restart ***
# 重啟某個程序
supervisorctl stop ***
# 停止某乙個程序(***),***為[program:theprogramname]裡配置的值
supervisorctl stop groupworker
# 重啟所有屬於名為groupworker這個分組的程序(start,restart同理)
supervisorctl stop all
# 停止全部程序,注:start、restart、stop都不會載入最新的配置文
supervisorctl reread
# 當乙個服務由自動啟動修改為手動啟動時執行一下就ok
注意點:
在啟動命令前面需要呼叫exec,因為supervisor在管理程序的時候,始終監視第乙個主程序,所以此處最好不能fock新的子程序出來,雖然上面配置中可以通過程序組的方式來管理,但是也不建議這麼做
不能加nohup和&來啟動服務,輸出也不要重定向到指定檔案,讓其輸出到終端,由supervisor來管理日誌,此時就可以根據相關策略進行日誌的切割操作
利用Supervisor 管理自己部署的應用程式
首先,在centos7下安裝supervisor yum install python setuptools easy install supervisor 然後新建配置檔案 新建supervisor資料夾 mkdir etc supervisor 生成預設的配置檔案 echo supervisor...
Supervisor程序管理
supervisor 是用python開發的乙個client server服務,是linux unix系統下的乙個程序管理工具,不支援windows系統。它可以很方便的監聽 啟動 停止 重啟乙個或多個程序。用supervisor管理的程序,當乙個程序意外被殺死,supervisort監聽到程序死後,...
supervisor 管理程序
pip install supervisor 配置 etc supervisord.conf file var run supervisor.sock unix socket 檔案,supervisorctl 會使用,如果不能自動建立,可能是沒有許可權,需要手動新增 supervisord logf...