即使在关闭服务器终端后,我也使用以下命令将我的队列进程设置为永远执行。但是一旦我关闭终端,它就会停止。请在这件事上给予我帮助。如何让它一直在后台运行。 您可以看到我使用了所有 nohup 命令,但没有成功。
1) nohup php artisan queue:work --tries=1 </dev/null >/dev/null 2>&1 &
2) nohup php artisan queue:work --tries=1 >/dev/null 2>&1 &
3) nohup php artisan queue:work --daemon > /dev/null 2>&1 &
4) nohup php artisan queue:work > /dev/null 2>&1 &
5) nohup php artisan queue:work --tries=1
6) nohup php artisan queue:listen >/dev/null 2>&1 &
注意:我没有服务器的 root
访问权限。我正在使用从 WHM 创建的用户。 IDK 如果那是问题。
最佳答案
转到 CPanel
-> Cron Jobs
页面
然后通过添加如下命令创建一个 cron 作业:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
不要忘记将/path-to-your-project 更改为您的项目文件夹
它将运行 laravel 计划的命令。
并将其放入 app/Console/Kernel.php
文件中的 schedule
方法。
$schedule->command('queue:work --stop-when-empty')->everyMinute()->withoutOverlapping();
关于linux - 当终端关闭时,Laravel 5.6 在后台的队列处理停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890124/