Laravel artisan queue:work 重定向 stderr/stdout 到文件

Laravel artisan queue:work redirect stderr/stdout to file

我正在尝试在后台重定向命令 php artisan queue:workstdoutstderr。 为此,我创建了这个脚本:

## script name: queue_work.sh

    #!/bin/bash

    ## Redirect Files

    STDOUTFILE="${RootDir}/storage/logs/queue_output"
    STDERRFILE="${RootDir}/storage/logs/queue_error"

    ## Run php artisan

    php ${ARTISANCMD} queue:work --queue=high --sleep=3 --tries=3 1>"${STDOUTFILE}_high.log" 2>"${STDERRFILE}_high.log" &
    php ${ARTISANCMD} queue:work --queue=low  --sleep=3 --tries=3 1>"${STDOUTFILE}_low.log" 2>"${STDERRFILE}_low.log" &

当我运行

./queue_work.sh

这四个文件很好地创建到 storage/logs/ 中,当我处理 Queueable 时,队列运行良好(即处理命令)所有 queue_output*.logqueue_error*.log 文件留空。

什么在我的简单脚本中不起作用?

谢谢

尝试运行

nohup php artisan queue:work

它将创建 nohup.out 文件,其中所有输出和错误将显示为:

[2017-03-24 00:00:00] Processed: App\Jobs\SomeJob