queue:work进程老是因为各种原因停止,需要一个进程守护工具。
sudo apt-get install supervisor
在 /etc/supervisor/conf.d 目录创建配置文件。
我创建了一个 laravel-imexport-queue.conf 用来启动和监视 queue:work 进程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [program:laravel-imexport-queue] process_name=%(program_name)s_%(process_num)02d
# 程序启动后执行的命令 command=/www/server/php/74/bin/php /www/wwwroot/xx/artisan queue:work --queue=xx --timeout=0
# Supervisor 启动时自动启动该程序 autostart=true
# 指定进程挂掉时 Supervisor 自动重启进程 autorestart=true user=root
# 运行和监控的进程数量 numprocs=1
# 将 stderr 错误输出重定向到 stdout 标准输出 redirect_stderr=true
# 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。 stdout_logfile=/www/wwwroot/xx/storage/logs/queue-worker.log
|
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 查看所有进程的状态 supervisorctl status
# 配置文件修改后可以使用该命令加载新的配置 supervisorctl update
# 重新启动所有进程 supervisorctl reload
操作指定进程:
# 停止laravel-imexport-queue supervisorctl stop laravel-imexport-queue
# 启动laravel-imexport-queue supervisorctl start laravel-imexport-queue
# 重启laravel-imexport-queue supervisorctl restart laravel-imexport-queue
|