supervisor指南
程序员文章站
2022-10-19 09:45:24
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,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。