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