1、使用 pip 安装
pip install supervisor
2、创建配置文件
需要 root 来运行
echo_supervisord_conf > /etc/supervisord.conf
3、需要改配置文件
·
·
[unix_http_server]
;修改文件位置为 /var/run/
file=/var/run/supervisor.sock ; the path to the socket file
·
·
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
·
·
[supervisord]
;修改文件位置为 /var/log/
logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log
·
·
;修改文件位置为 /var/run/
pidfile=/var/run/supervisord.pid ; supervisord pidfile; default supervisord.pid
·
·
[include]
files = /etc/supervisor/*.conf
4、启动 supervisor (确保 9001 端口未被占用)
sudo supervisord -c /etc/supervisord.conf
5、如果第二中修改的文件不能自动创建,则需手动创建
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo touch /var/log/supervisord.log
sudo chmod 777 /run
sudo chmod 777 /var/log
6、创建项目配置文件
文件后缀以 .conf 结尾
注意:项目配置文件应该放到,supervisor 配置文件中,include 下的文件夹中
[program:default]
user=www
process_name=%(program_name)s_%(process_num)02d
command=php /data/wwwroot/chaoteos.com/artisan queue:work redis --sleep=1 --tries=1 --timeout=8
autostart=true
autorestart=true
startsecs=10
numprocs=3
redirect_stderr=true
stdout_logfile=/data/logs/supervisor/chaote/default.log
创建日志文件
sudo touch /data/logs/supervisor/chaote/default.log
sudo chmod 777 /data/logs/supervisor/chaote/default.log
7、启动 supervisor 项目配置文件
sudo supervisorctl reread // 重新加载主配置文件
sudo supervisorctl update // 创建项目配置文件进程组
sudo supervisorctl default:* // 启动监听进程
sudo supervisorctl status // 出现以下则成功
default:default_00 RUNNING pid 3651, uptime 0:22:23
default:default_01 RUNNING pid 3652, uptime 0:22:23
default:default_02 RUNNING pid 3653, uptime 0:22:23
注意:当修改 laravel jod(队列中运行到的代码)代码修改后,需要重启 supervisor 才会生效
supervisor 相关命令
sudo supervisorctl status
sudo supervisorctl stop usercenter
sudo supervisorctl stop all // 停止所有
sudo supervisorctl start usercenter
sudo supervisorctl restart usercenter
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl // 进入 cli
如果出现错误,请到对应的日志文件查看具体的报错,对症下药。官方文档