參考:
在這里先放官方鏈接:
- 官網: http://supervisord.org/
-
github: https://github.com/Supervisor/supervisor
概述:
軟件功能:
本軟件是進程管理系統,可以很簡單的管理系統,同時提供了很豐富的接口可以讓你隨心所欲的管理
應用場景:
-
- 常駐任務維護、管理,不論你的常駐進程是什么語言寫的,都可以使用本神器管理
- 用來監控nginx, redis, mongodb等軟件,實現軟件如果因為異常掛了,可以自動重啟,不至於終端服務
架構:
supervisord: 服務端,真正用來監控程序的進程
supervisorctl: 客戶端,用來管理監控程序的進程
安裝:
說明:
-
- 我這里采用了一個自己約定的規范,方便組內成員形成共識,對服務管理沒有學習成本
- 我是依賴python安裝的
規范:
-
- 軟件根目錄: /data/opt
- 快捷方式根目錄: /data/opt/scripts,其中本目錄會加入到系統PATH中。export PATH='/data/opt/scripts':$PATH
- supervisord的配置目錄、以及運行日志目錄都放置在/data/opt/supervisord里
依賴:
python
安裝:
pip install supervisor
結構樹:
. |-- conf | |-- demo.conf.tpl | `-- demo_multi.conf.tpl |-- logs | `-- supervisord.log |-- supervisord.conf |-- supervisord.pid `-- supervisor.sock 2 directories, 6 files
配置 - supervisord:
說明:
1. 本軟件支持web頁面管理,可以放開相應配置,但建議如果沒必要,不需要放開。我給的示例是沒有放開的
配置:
[unix_http_server] file=/data/opt/supervisord/supervisor.sock ; the path to the socket file [supervisord] logfile=/data/opt/supervisord/logs/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/data/opt/supervisord/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=false ; start in foreground if true; default false minfds=1024 ; min. avail startup file descriptors; default 1024 minprocs=200 ; min. avail process descriptors;default 200 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///data/opt/supervisord/supervisor.sock ; use a unix:// URL for a unix socket [include] files = conf/*.conf
啟動:
supervisord -c /data/opt/supervisord/supervisord.conf
配置 - supervisorctl:
說明:
進程可以只啟動一個,也可以啟動多個。這里把兩個模板都放出來,大家可以根據需要更改。
配置:
conf/demo.conf.tpl:
[program:%%name%%] command=%%command%% autostart=true autorestart=true startretries=3 ; stop stopsignal=TERM ; user user=root ; 日志 redirect_stderr=true stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=50
conf/demo_multi.conf.tpl:
[program:%%name%%] command=%%command%% process_name=%(program_name)s_%(process_num)02d numprocs=3 autostart=true autorestart=true startretries=3 ; stop stopsignal=TERM ; user user=root ; 日志 redirect_stderr=true stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=50
啟動:
supervisorctl -c /data/opt/supervisord/supervisord.conf
常用管理命令:
- help:幫助
- start: 啟動服務
- stop: 停止服務
- restart: 重啟服務
- reload: 重新加載服務
使用截圖:

其他:
如果你使用過程中有不明白的,可以到qq群: 854211808 或者 qq掃下面的二維碼加入群。
如果有技術分享交流也都可以哦!
