安装supervisor
pip install supervisor
生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
修改配置文件
vim /etc/supervisord.conf
[unix_http_server]
file=/run/supervisor.sock ; the path to the socket file
[supervisord]
logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log
[supervisorctl]
serverurl=unix:///run/supervisor.sock ; use a unix:// URL for a unix socket
[include] # 前面 ; 号一定要去掉
files = /data/services/crawler_scrapy_us/docs/process_server.ini # 前面 ; 号一定要去掉
进程服务管理文件 process_server.ini
[group:abc]
programs = process1,process2
[program:process1]
directory=/data/service
command=/usr/bin/python process1.py
autostart=true
autorestart=true
stderr_logfile=/var/log/process1_stderr.log
stdout_logfile=/var/log/process1_stdout.log
[program:process2]
directory=/data/service
command=/usr/bin/python process2.py
autostart=false # 关闭自动开始
autorestart=true
stderr_logfile=/var/log/process2_stderr.log
stdout_logfile=/var/log/process2_stdout.log
启动supervisord
supervisord -c /etc/supervisord.conf
检查supervisord进程情况
ps aux | grep supervisord
# kill 2112 # 若需要关闭,用这命令
supervisorctl命令备忘
# 查看supervisord当前管理的所有进程的状态
supervisorctl status
# 启动进程
supervisorctl start process1 #启动单个进程
supervisorctl start abc: #启动进程组
supervisorctl start all #启动所有进程
# 停止进程
supervisorctl stop process1
supervisorctl stop all
# 重启进程
supervisorctl restart process1 #或者使用supervisorctl reload: 重启
supervisorctl restart all
# 读取有更新(增加)的配置文件,不会启动新添加的程序
supervisorctl reread
# 将配置文件里新增的子进程加入进程组,如果设置了autostart=true则会启动新新增的子进程
supervisorctl update