# supervisor篇
# 安装
yum install -y supervisor
查看配置
echo_supervisord_conf
写入配置
echo_supervisord_conf > /etc/supervisord.conf
注意
在最后一行是定义其他配置文件的地方.logfile 这里是存放日志的地方,如果有需要可以根据自己需要更改,方便后续统一用日志切割logrotate管理日志文件
# 编写子配置文件
注意
replace_path 是指项目的绝对路径,便于快速替换.同理 log_path是指日志存放绝对路径,同理node_path也是这里道理 例如 node_path= node的实际安装路径
# laravel-worker.ini
配置文件路径
/etc/supervisord.d/laravel-worker.ini
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php replace_path/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
startsecs=10
user=root
numprocs=4
redirect_stderr=true
stdout_logfile= log_path/queue/queue.log
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=10
stopwaitsecs=3600
# laravel-websocket.ini
配置文件路径
/etc/supervisord.d/laravel-websocket.ini
[program:laravel-websocket]
process_name=%(program_name)s_%(process_num)02d
command=php replace_path/artisan websocket:serve
autostart=true
autorestart=true
startsecs=10
user=root
numprocs=1
redirect_stderr=true
stdout_logfile= log_path/websocket/websocket.log
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=10
stopwaitsecs=3600
# laravel-echo-server.ini
注意
laravel-echo-server 比较特殊,需要注意问题多,单独会有laravel-echo-server篇
[program:laravel-echo-server]
process_name=%(program_name)s_%(process_num)02d
directory=replace_path
command= node_path/laravel-echo-server start --dir=replace_path
startsecs=10
user=用户
numprocs=1
redirect_stderr=true
stdout_logfile= log_path/laravel-echo-server/laravel-echo-server.log
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=10
stopwaitsecs=3600
# 启动
启用 supervisord
systemctl enable supervisord
查看状态
systemctl status supervisord
启动成功如图:
启动
systemctl start supervisord
重启
systemctl restart supervisord
查看是否存在supervisord进程
ps -ef|grep supervisor[d]
# 强调
特别注意
请记住,队列任务工作者是长期存在的进程,并将启动的应用程序状态存储在内存中.所以当代码调试和修改以后,生产环境需要重启,开发环境运行 queue:listen 命令
执行以下重启命令
systemctl restart supervisord