如何在PHP中运行非阻塞系统调用?
系统调用将调用由第二个PHP脚本运行的流服务..所以我的页面坐下来等待这个调用。
我对解决方案的两点看法:
1:存在通过非阻塞
执行系统调用的本机方法/参数2:在一个新的C ++程序上运行system(),然后在一个sep上自行分叉并运行实际的php脚本。螺纹
是否存在以非阻塞方式执行系统调用的本机方法,或者我是否需要解决此问题...
我目前有shell_exec('nohup php /path/to/file.php&')但它仍然存在
答案 0 :(得分:4)
来自PHP manual:
如果程序是使用此功能启动的,则为了它 继续在后台运行,程序的输出必须是 重定向到文件或其他输出流。没有这样做会 导致PHP挂起,直到程序执行结束。
同一页面(基于linux)的评论中提供了一个示例:
如果你想启动一个继续独立运行的php进程 从apache(使用不同的父pid)使用nohub。例如:
exec('nohup php process.php> process.out 2> process.err< / dev / null &安培;');