Laravel artisan queue:work 重定向 stderr/stdout 到文件
Laravel artisan queue:work redirect stderr/stdout to file
我正在尝试在后台重定向命令 php artisan queue:work
的 stdout
和 stderr
。
为此,我创建了这个脚本:
## 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*.log
和 queue_error*.log
文件留空。
什么在我的简单脚本中不起作用?
谢谢
尝试运行
nohup php artisan queue:work
它将创建 nohup.out 文件,其中所有输出和错误将显示为:
[2017-03-24 00:00:00] Processed: App\Jobs\SomeJob
我正在尝试在后台重定向命令 php artisan queue:work
的 stdout
和 stderr
。
为此,我创建了这个脚本:
## 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*.log
和 queue_error*.log
文件留空。
什么在我的简单脚本中不起作用?
谢谢
尝试运行
nohup php artisan queue:work
它将创建 nohup.out 文件,其中所有输出和错误将显示为:
[2017-03-24 00:00:00] Processed: App\Jobs\SomeJob