supervisor简介
supervisor,管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启。
安装
yum install supervisor -y
创建配置文件
echo_supervisord_conf > /etc/supervisord.conf
配置文件 /etc/supervisord.conf 末尾添加以下代码:
[program:php]
command= /usr/local/bin/php think queue:work --queue notify --daemon ;被监控进程
directory=/data/app/nginx/html/
process_name=%(process_num)02d
numprocs=5 ;启动的进程数
autostart=true ;随着supervisord的启动而启动
autorestart=true ;自动启动
startsecs=1 ;程序重启时候停留在runing状态的秒数
startretries=10 ;启动失败时的最多重试次数
redirect_stderr=true ;重定向stderr到stdout
stdout_logfile=/var/log/supervisor/supervisord.log ;日志文件
启动supervisord服务
supervisord -c /etc/supervisord.conf
更新新的配置到supervisord
supervisorctl update
重新启动配置中的所有程序
supervisorctl reload
启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
查看正在守候的进程
supervisorctl
重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
停止全部进程
supervisorctl stop all
查看supervisord进程
ps aux | grep supervisord
更为详尽参考:https://blog.csdn.net/xyang81/article/details/51555473