首页 > 解决方案 > Laravel artisan 有没有命令管理器

问题描述

我的 laravel 生产应用程序中几乎没有命令。

php artisan serve

php artisan queue:work

php artisan roulette:color

php artisan roulette:even

我正在使用带有 ubuntu 自定义主机的 vpn

现在我正在制作 4 个不同的屏幕来运行这些永远运行的命令

但有时很少崩溃不知道为什么,我必须再次找到哪个屏幕崩溃了命令

我正在寻找可以轻松管理我的命令的任何经理

谢谢你

标签: laravellaravel-artisan

解决方案


Supervisor 是 Linux 操作系统的进程监视器,queue:work如果进程失败或保持任何其他命令处于活动状态,它将自动重新启动您的进程。要在 Ubuntu 上安装 Supervisor,您可以使用以下命令:sudo apt-get install supervisor。

配置主管

主管配置文件通常存储在/etc/supervisor/conf.d目录中。在这个目录中,你可以创建任意数量的配置文件来指示主管应该如何监控你的进程。例如,让我们创建一个laravel-worker.conf启动和监视queue:work进程的文件:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/path/to/you/app.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/path/to/you/app.com/worker.log
stopwaitsecs=3600

在本例中,该numprocs指令将指示 Supervisor 运行 8queue:work个进程并监视所有进程,如果它们失败则自动重新启动它们。您应该更改指令的queue:work sqs部分command以反映您所需的队列连接。

启动主管

创建配置文件后,您可以使用以下命令更新 Supervisor 配置并启动进程:

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start laravel-worker:*

有关 Supervisor 的更多信息,请参阅Supervisor 文档


推荐阅读