supervisor指南

1 安装

yum install -y supervisor
   如果提示没有这个安装包,则需要添加epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2 配置要监控的程序

vim /etc/supervisord.d/test.ini 

[program:test]
command =  /usr/bin/python3  /opt/test_super.py
stdout_logfile = /tmp/test.log
redirect_stderr = true
stdout_logfile_maxbytes = 1024MB
stdout_logfile_backups = 2
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
startretries = 3
user = root

说明:

# [program:test] 指定程序名称
directory = /usr/local/bin ; 程序的启动目录
command = /usr/local/bin/confd -config-file /etc/confd/confd.toml ; 启动命令,与命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = root          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /etc/supervisord.d/log/confd.log  ;日志统一放在log目录下; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

3 Surpervisor的启动

supervisord -c /etc/supervisord.conf

4 操作说明:

supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]

supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。
supervisorctl start programxxx,启动某个进程。
supervisorctl restart programxxx,重启某个进程。
supervisorctl status,查看进程状态。
supervisorctl stop groupworker ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)。
supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
posted @ 2019-07-30 18:49  Sunzz  阅读(486)  评论(0编辑  收藏  举报