<>Supervisor是什么
是Linux/Unix系统下的一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制,
<>应用场景
* 执行耗时爬虫任务
* 守护队列,以及workman进程
* 需要一直执行的程序
<>安装Supervisor
linux下直接执行yun安装,方便快捷
yum install -y epel-release && yum install -y supervisor
安装完会生成三个执行程序
supervisortd、supervisorctl、echo_supervisord_conf
* supervisortd:用于管理supervisor本身服务
* supervisorctl:用于管理我们需要委托给superviso工具的服务
* echo_supervisord_conf:用于生成superviso的配置文件
* supervisor的守护进程服务(用于接收进程管理命令) [root@ad581v8efzsd5 /]# which supervisord
/bin/supervisord [root@ad581v8efzsd5 /]# which supervisorctl /bin/supervisorctl
[root@ad581v8efzsd5 /]# which echo_supervisord_conf /bin/echo_supervisord_conf
安装完启动
#supervisord启动 supervisord -c /etc/supervisord.conf #启动supervisord进程
<>编写workman被superviso守护
* 找到配置文件
/etc/supervisord.conf
* 在最下面添加如下代码 vim /etc/supervisord.d/redis.conf [program:dd_thinkphp_workman]
command= /usr/local/php/bin/php think worker:server ; 被监控进程 directory=
/data/wwwroot/thinkphp6; 项目地址(必填) ;process_name=%(process_num)02d ;numprocs=1
#启动几个进程 autostart=true ;随着supervisord的启动而启动 autorestart=true ;自动启动 startsecs=1
;程序重启时候停留在runing状态的秒数 startretries=10 ;启动失败时的最多重试次数 redirect_stderr=true
;重定向stderr到stdout stdout_logfile= /data/wwwlogs/dd_thinkphp_workman.log;
stdout文件,日志文件
* 使用super启动workman #杀掉supervisord ps -ef|grep supervisord root 23164 1 0
10:47 ? 00:00:00 /usr/bin/python /bin/supervisord -c /etc/supervisord.conf root
27549 27402 0 11:07 pts/2 00:00:00 grep --color=auto super kill -9 23164
#重新启动supervisord使其重新加载配置文件,supervisord默认会把workman拉起来 supervisord -c
/etc/supervisord.conf
* 其他命令 supervisorctl status workman #workman状态 supervisorctl stopworkman
#停止workman supervisorctl start workman #启动workman supervisorctl restart workman
#重启workman supervisorctl reoload workman #重载workman
<>管理supervisorctal
supervisorctl status all #查看所有进程状态 supervisorctl stop all #停止所有进程
supervisorctl start all #启动所有进程 supervisorctl restart all #重启所有进程 supervisorctl
reoload all #重载所有进程
总的来说是非常简单的,像一些队列啊,workman这些不能挂掉,就守护起来就行