【问题标题】:is there any command manager for Laravel artisanLaravel artisan 有没有命令管理器
【发布时间】:2020-11-26 04:41:03
【问题描述】:

我的 laravel 生产应用程序中的命令很少。

php artisan serve

php artisan queue:work

php artisan roulette:color

php artisan roulette:even

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

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

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

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

谢谢

【问题讨论】:

    标签: laravel laravel-artisan


    【解决方案1】:

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

    配置主管

    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 运行 8 个queue:work 进程并监控所有进程,如果它们失败则自动重新启动它们。您应该更改command 指令的queue:work sqs 部分以反映您所需的队列连接。

    启动主管

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

    sudo supervisorctl reread
    
    sudo supervisorctl update
    
    sudo supervisorctl start laravel-worker:*
    

    有关Supervisor的更多信息,请咨询Supervisor documentation

    【讨论】:

      【解决方案2】:

      您不需要制作 4 个不同的屏幕,只需运行:

      nohup php artisan queue:work --daemon &
      

      这将防止命令在您注销时退出。 尾随的和号 (&) 导致进程在后台启动,因此您可以继续使用 shell 而不必等到脚本完成。

      您可以通过在末尾添加& 在后台运行任何shell 命令:

      nohup php artisan serve &
      

      安装主管

      Supervisor 是 Linux 操作系统的进程监视器,如果它失败会自动重启你的queue:work 进程。要在 Ubuntu 上安装 Supervisor,您可以使用以下命令:

      sudo apt-get install supervisor
      

      配置主管

      /etc/supervisor/conf.d目录下创建laravel-worker.conf

      [program:laravel-worker]
      process_name=%(program_name)s_%(process_num)02d
      command=php /var/www/laravel-example/artisan queue:work sqs --sleep=3 --tries=3
      autostart=true
      autorestart=true
      user=forge
      numprocs=8
      redirect_stderr=true
      stdout_logfile=/var/www/laravel-example//storage/logs/supervisord.log
      stopwaitsecs=3600
      

      您可以在 Laravel 文档中查看 Supervisor: A Process Control SystemSupervisor Configuration 了解更多信息

      【讨论】:

        猜你喜欢
        • 2015-04-03
        • 2017-06-25
        • 2017-04-02
        • 2016-06-21
        • 1970-01-01
        • 2016-02-07
        • 1970-01-01
        • 2019-01-28
        • 2019-01-14
        相关资源
        最近更新 更多