1.前提
supervisor没安装的话可以看如下教程参考:
centos7安装supervisor以及简单使用_水月洞天-CSDN博客
Linux系统下 Supervisor 安装搭建 - haw2106 - 博客园
Supervisor安装与配置-简书
2.配置ini文件
文件目录可在supervisord.conf最后一行查看,我的在conf.d里面:
files = /etc/supervisor/conf.d/*.ini
进入这个目录cd /etc/supervisor/conf.d
,创建文件vim xxx.ini
后缀必须是.ini,编辑内容如下:
[program:xxx-worker] #你的worker名字
process_name=%(program_name)s_%(process_num)02d
command=laravel-echo-server start #启动命令
directory=www/laravel-echo#laravel-echo-server.json所在目录
autostart=true
autorestart=true
user=root #启动用户
numprocs=1 #进程数量
redirect_stderr=true
killasgroup=true
stopasgroup=true
stdout_logfile=/etc/supervisor/worker.log/xxx-worker.log#记得去创建这个log文件
保存,回到/etc/supervisor目录下运行:
supervisorctl reread
supervisorctl start xxx-worker:*
没问题的话输入supervisorctl status
查看是RUNNING状态的话就成功了!
但我的报错了:
[root@iZwz93r9tssdwhrzf74rzlZ supervisor] supervisorctl start xxx-worker:*
xxx-worker:xxx-worker_00: ERROR (spawn error)
[root@iZwz93r9tssdwhrzf74rzlZ supervisor] supervisorctl status
xxx-worker:xxx-worker_00 FATAL Exited too quickly (process log may have details)
查看配置的worker.log/xxx-worker.log文件
/usr/bin/cd: 第 2 行:cd: /www/laravel-echo;: 没有那个文件或目录
目录是存在的,怀疑是root用户没有执行权限,就把laravel-echo-server.json移到了/root文件夹,修改ini文件的directory=/root
,重新运行成功!
[root@iZwz93r9tssdwhrzf74rzlZ supervisor] supervisorctl reread
xxx-worker : changed
[root@iZwz93r9tssdwhrzf74rzlZ supervisor] supervisorctl start xxx-worker:*
[root@iZwz93r9tssdwhrzf74rzlZ supervisor] supervisorctl status
xxx-worker:xxx-worker_00 RUNNING pid 11521, uptime 0:00:09
3.常用命令
supervisor常用命令
supervisorctl status
supervisorctl stop
supervisorctl start
supervisorctl restart
supervisorctl reread
supervisorctl update
supervisorctl reload
过一段时间reload的时候报错,原因是系统会定期清理temp文件夹下的缓存文件,解决方式如下:
解决supervisor中unix:///tmp/supervisor.sock no such file的问题_asd52656的博客-CSDN博客
supervisor管理进程停止异常问题记录_dolores_peng的博客-CSDN博客_supervisor进程假死
supervisor stop父进程的同时, 也stop掉子进程 - 简书