1.简介
supervisord 来管理进程,当进程die掉之后,可以再次开启进程
2.安装
yum install supervisor
3.配置
(1): 使用yum install supervisor的命令安装,会生成默认配置/etc/supervisord.conf和目录/etc/supervisord.d,如果没有则自行创建
在/etc/supervisord.d的目录下创建conf和log两个目录,conf用于存放管理进程的配置,log用于存放管理进程的日志。
cd /etc/supervisord.d
mkdir conf log
(2):修改 /etc/supervisord.conf的[include]部分,即载入/etc/supervisord.d/conf目录下的所有配置。然后 vim /etc/supervisord.conf
[include]
files = supervisord.d/conf/*.conf
(3):【可选】也可以在 /etc/supervisord.conf 中修改supervisor应用日志的目录,默认日志路径为/var/log/supervisor/supervisord.log。同时创建对应的log日志目录
(4):管理应用的配置
进入到/etc/supervisord.d/conf目录,创建管理应用的配置,可以创建多个应用配置;
例如,创建confd.conf配置。
[program:confd]
directory = /srv/****/ ###(对应的项目目录)
command = /usr/****/php(php的位置) /srv/*****/artisan(项目目录) testSupervisor(对应的脚本名称)
autostart = true
startsecs = 5
autorestart = true ### 程序异常退出后自动重启
startretries = 3 ###启动失败自动重试次数,默认是 3
user = root ###用哪个用户启动
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
4.启动
### supervisord二进制启动
supervisord -c /etc/supervisord.conf
### 检查进程
ps aux | grep supervisord
5.附加启动
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。
supervisorctl start programxxx,启动某个进程。
supervisorctl restart programxxx,重启某个进程。
supervisorctl status,查看进程状态。
supervisorctl stop groupworker ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)。
supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。