从PHP调用Shell命令而不考虑输出

时间:2015-11-08 03:25:06

标签: php laravel

我正在尝试编写一个cronjob来启动我希望并行运行的多个进程。

我正在使用foreach调用每个命令,但命令行会等待输出。我不想放它。

想知道是否有人为此使用过任何图书馆?

2 个答案:

答案 0 :(得分:1)

在命令后添加&符号:

$ php task.php &

它将在后台运行该php实例并继续。

答案 1 :(得分:0)

如果您阅读the manual on passthru,您会发现它会告诉您如何避免这种情况......

  

如果使用此功能启动程序,为了使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。

因此,您可以依赖UNIX fds将输出重定向到类似/dev/null的内容,例如,如果您不关心输出或某些文件,如果您确实想要保存输出,这将避免PHP等待在命令完成。

pssthru("somecommand > /some/path/to/file")