一、Supervisor安装 :
sudo apt-get install supervisor
supervisor提供两个命令:
/usr/bin/supervisord ;supervisor服务守护进程
/usr/bin/supervisorctl ;supervisor控制台进程
supervisor的配置文件默认路径为:
/etc/supervisor
--conf.d ;存放着supervisor监管的进程的配置信息,一个进程对应一个配置文件
--supervisord.conf ;supervisor的主配置文件,定义服务名称以及接口等等
二、Supervisor配置
用supervisor监控一个脚本进程,需要在/etc/supervisor/conf.d中新建一个关于这个脚本进程的配置文件。
vim script.conf
[program:srcipt] #程序的名字,在supervisor中可以用这个名字来管理该程序。
command=scirpt.php #启动程序的命令
autorstart=true #设置该程序是否随supervisor的启动而启动
directory=page/to/your/ #相当于在该目录下执行程序
autorestart=true #程序停止之后是否需要重新将其启动
startsecs=10 #重新启动时,等待的时间
startretries=36 #重启程序的次数
redirect_stderr=true #是否将程序错误信息重定向的到文件
stdout_logfile=/home/hadoop/supervisor_log/log.txt #将程序输出重定向到该文件
stderr_logfile=/home/hadoop/supervisor_log/err.txt #将程序错误信息重定向到该文件
三、Supervisor管理
Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:
supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。