# 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

启动成功如图:

supervisor

启动

 systemctl start supervisord

重启

 systemctl restart supervisord

查看是否存在supervisord进程

ps -ef|grep supervisor[d]

supervisord

# 强调

特别注意

请记住,队列任务工作者是长期存在的进程,并将启动的应用程序状态存储在内存中.所以当代码调试和修改以后,生产环境需要重启,开发环境运行 queue:listen 命令

执行以下重启命令

 systemctl restart supervisord
Last Updated: 3/25/2025, 11:41:48 AM