如何在PHP中运行背景过程并获取返回值



可能的重复:
让PHP等待MATLAB脚本完成执行

好吧,从PHP开始执行背景过程运行背景过程效果很好。问题是,我还需要该过程的返回。对我的明显解决方案是:

$cmd = "($cmd > $outputfile 2>&1 || echo $? > $returnfile) & echo $! > $pidfile";
exec($cmd);

当我在命令行上运行生成的命令时,IT背景和文件会如预期填写。问题在于,当Php exec()运行时,命令不会进入背景(至少在命令完成之前,Exec才返回)。我尝试使用NOHUP进行变体,然后等待$ pid,但仍然没有解决方案。

有什么想法?

这很棘手 - 您可能会分配做其他事情的过程,而将原始过程留在适当的位置。

http://php.net/manual/en/function.pcntl-fork.php

但是,如果这是一个Web应用程序,则没有内置的方法可以检索返回代码或stdout返回父进程,因为它是技术上的(您的请求 - 响应周期可能会在产生结果之前结束))。

您可以将返回代码和/或stdout存储到文件中以稍后检查。

相关内容

  • 没有找到相关文章

最新更新