Supervisor管理自己的服務

2021-10-23 09:35:01 字數 2913 閱讀 8796

supervisor在centos7中預設自帶,無需單獨安裝,使用方便,可以管理本機服務,遠端服務,可配置顯示頁面,可以切割日誌

使用前先修改配置檔案/etc/supervisord.conf,開啟注釋及修改拉起服務配置目錄及檔案

# vim /etc/supervisord.conf

[include]

files =/etc/supervisord.d/*.conf

建立服務的配置,如backend服務

[program:backend]

command=/opt/***/init.d/backendstart# 程式啟動方式,最好使用絕對路徑

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...