Supervisor(http://supervisord.org/)
是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
supervisor:要安装的软件的名称。
supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。
supervisorctl:用于管理supervisor配置文件中program。
yum安装supervisor
yum install epel-release先安装EPEL源
yum install -y supervisor
配置开机自启
systemctl enable supervisord
启动supervisord
systemctl start supervisord
查看状态
systemctl status supervisord
修改配置文件,开启web界面访问
vim /etc/supervisord.conf
把[inet_http_server]模块的注释去掉
并修改IP、用户名与密码
重新加载配置文件
supervisorctl reload
cat /etc/supervisord.conf
查看配置文件最后一个模块
配置需要管理的进程
vim /etc/supervisord.conf 也可修改为
files = supervisord.d/*.conf后缀
目录在/etc/supervisord.d/下面
到/etc/supervisord.d/目录下,创建需要管理的进程配置文件
例如我们创建一个 laravel-worker.conf 来启动与监控一个 queue:listen 进程
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:listen
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app.com/worker.log
这个例子里的 numprocs 命令会要求 Supervisor 运行并监控 8 个 queue:work 进程,并且在它们运行失败后重新启动
当这个配置文件被创建后,你需要更新 Supervisor 的配置,并用以下命令来启动该进程
supervisorctl reread
supervisorctl update
supervisorctl start laravel-worker:*
supervisorctl
status #查看程序状态
stop name #关闭name程序
start name #启动name程序
restart name # 重启name程序
reread #读取有更新的配置文件,不会启动新添加的程序
update #重启配置文件修改过的程序