supervisor程序守護

2021-10-24 16:48:30 字數 2679 閱讀 1734

supervisor是用python開發的乙個client/server服務,是linux/unix系統下的乙個程序管理工具。可以很方便的監聽、啟動、停止、重啟乙個或多個程序。用supervisor管理的程序,當乙個程序意外被殺死,supervisor監聽到程序死後,會自動將它重啟,很方便的做到程序自動恢復的功能,不再需要自己寫shell指令碼來控制。

$ sudo pip install supervisor
安裝完成後,會在etc資料夾下生成supervisord.conf檔案和supervisord.d檔案,其中supervisord.conf檔案即配置檔案示例。

在任意路徑新建配置檔案supervisord.conf,配置字段如下:

[supervisord]

logfile=/tmp/supervisord.log //日誌檔案,預設是 $cwd/supervisord.log

logfile_maxbytes=50mb //日誌檔案大小,超出會rotate,預設50mb,如果設成0,表示不限制大小

logfile_backups=10 //日誌檔案保留備份數量預設10,設為0表示不備份

loglevel=info //日誌級別,預設info,其它: debug,warn,trace

pidfile=/tmp/supervisord.pid //pid 檔案

nodaemon=false //是否在前台啟動,預設是false,即以 daemon 的方式啟動

minfds=1024 //可以開啟的檔案描述符的最小值,預設 1024

minprocs=200 //可以開啟的程序數的最小值,預設 200

[program:xx] //被管理的程序配置引數,xx是程序的名稱

command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run //程式啟動命令

autostart=true //在supervisord啟動的時候也自動啟動

startsecs=10 //啟動10秒後沒有異常退出,就表示程序正常啟動了,預設為1秒

autorestart=true //程式退出後自動重啟,可選值:[unexpected,true,false],預設為unexpected,表示程序意外殺死後才重啟

startretries=3 //啟動失敗自動重試次數,預設是3

user=root //用哪個使用者啟動程序,預設是root

priority=999 //程序啟動優先順序,預設999,值小的優先啟動

redirect_stderr=true //把stderr重定向到stdout,預設false

stdout_logfile_maxbytes=20mb //stdout 日誌檔案大小,預設50mb

stdout_logfile_backups = 20 //stdout 日誌檔案備份數,預設是10

//stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)

stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out

stopasgroup=false //預設為false,程序被殺死時,是否向這個程序組傳送stop訊號,包括子程序

killasgroup=false //預設為false,向程序組傳送kill訊號,包括子程序

file=/tmp/supervisor.sock //unix socket 檔案,supervisorctl 會使用

//chmod=0700 //socket檔案的mode,預設是0700

//chown=nobody:nogroup //socket檔案的owner,格式:uid:gid

//[inet_http_server] //http伺服器,提供web管理介面

//port=127.0.0.1:9001 //web管理後台執行的ip和埠,如果開放到公網,需要注意安全性

//username=user //登入管理後台的使用者名稱

//password=123 //登入管理後台的密碼

[supervisorctl]

serverurl=unix:///tmp/supervisor.sock ;通過unix socket連線supervisord,路徑與unix_http_server部分的file一致

;serverurl= ; 通過http的方式連線supervisord

;包含其它配置檔案

[include]

files = relative/directory/*.ini ;可以指定乙個或多個以.ini結束的配置檔案

supervisord -c /***/supervisord.conf

守護程序 supervisor

安裝 yum install superviosr 如果提示 缺少 epel release 則要先安裝 yum install epel release 啟動supervisor supervisord c etc supervisord.conf supervisorctl c etc supe...

Supervisor 程序守護

先看下本機是否有 我的本機已經有了。root a1 supervisord.d whereis supervisord supervisord usr bin supervisord etc supervisord.d etc supervisord.conf root a1 supervisord...

centos守護程序 supervisord

yum install supervisorsupervisord c etc supervisord.conf etc supervisord.conf檔案中有一行files supervisord.d ini說明會載入 etc supervisord.d資料夾中的所有.ini配置檔案,故需要在s...