通过nohup运行Laravel Artisan命令

时间:2014-04-07 12:17:38

标签: php laravel process nohup

我必须从PHP触发一个Laravel Artisan命令,因此它在后台作为一个独立的进程运行,并尝试使用 nohup 来实现此目的:

$base_path = base_path();
shell_exec("nohup /usr/local/bin/php {$base_path}/artisan tms:parse --alias=some_alias --keep > nohup.out & > /dev/null");

shell_exec 始终返回 null ,因此无法按预期获得PID。

任何想法有什么不对?

当我改为

shell_exec("nohup /usr/local/bin/php {$base_path}/artisan tms:parse --alias=some_alias --keep > /dev/null 2>&1 & echo $!");

我得到一个PID,但是运行 ps 顶部,很明显脚本的退出时间早于预期。直接在命令行中运行nohup命令工作正常,因此只有在尝试从PHP脚本中运行它时才会失败。

0 个答案:

没有答案