PHP函数exec()
写了个简单的测试
目前只是在win环境下测试,即使进行了输出重定向,php程序仍然会挂起.why?和系统有关么?
index.php文件
exec('php test.php '); return 'ooo';
test.php文件如下
for($i = 0; $i<10000; $i++){ file_put_contents('./test.txt','我就试试'.$i); } echo 'over';
却发现 php在执行index.php文件的时候一直处于挂起等待状态直至test.php中的任务执行完成才结束请求
查看手册终于发现
Note:
如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。
如果exec()函数当前页面执行导致php挂起,那么其他也没的php也将会被挂起,整个PHP请求处于等待状态