1. 安装 supervisor
easy_install supervisor
yum instal1-y supervisor
supervisor -v
2. 启动supervisor
cd/1ib/systemd/system
systemctl start/stop/reload sppervisord.service
systemctl list-unit-files --type=service l grep supervisor
systemctl enable supervisord.service
systemct1 is-enabled supervisord
echo_supervisord_conf >/etc/supervisord.conf
vim /etc/supervisord.conf
128 [inc lude]
129 fles =/etc/supervisor d.d/.ini
supervisord -c /etc/supervisord.conf
systemctl status supervisord.service
3. 相关命令
supervisorctl reread
supervisorctl update
supervisorctl reload
supervisorctl status
supervisorctl start/restart fastapi:*
supervisorctl stop fastapi:*
supervisorctl stop groupworker:*
supervisorctl stop all
4. 配置
[program:fastapi]
environment=APP_CONFIG=dev ;设置环境变量
process_name=%(program_name)s-%(process_num)02d ;进程名称
command=/root/incm-monitor-service/venv/bin/python3 main.py --port=%(process_num)s; 被监控的进程路径
directory=/root/incm-monitor-service/src ;执行command前,先chdir 到此目录,所以上面main.py是相对路径
numprocs=6 ; 同时启动的进程数量
numprocs_start=5001 ; 变量%(process_num)从哪里开始计数,依次递增1
user=oper
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启
stopasgroup=true ; 停止父进程时会停止所有的子进程
stderr_logfile=NONE
stdout_logfile=NONE ; 不记录日志,由程序自己记录
priority=1 ; 数字越高,优先级越高
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout