欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

supervisor指南

程序员文章站 2022-04-25 15:58:50
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/ ......

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/nohup  /usr/bin/python3 /opt/test_super.py >> /tmp/test.log  2>&1 &
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,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。