我正在尝试从Linux下的php5脚本创建一个tarball,我并不关心输出;我到目前为止发现的方式就是
system("tar czf tarball.tgz directory/path &");
但是我想介绍这个过程
检查system() documentation它提到必须将输出重定向到文件
然而
system("tar czf tarball.tgz directory/path > /dev/null 2>&1");
无济于事。 system()
函数不带文件描述符......我缺少什么?
使用以下方法进行测试:
脚本test.php
<pre><?php
exec("bash dodate 2>&1 /dev/null &");
system("echo done at \$(date)");
?></pre>
脚本./dodate
sleep 5
date
我转到浏览器并调用/刷新页面;确实需要5秒钟才能打印/更新“完成”消息。
由于
答案 0 :(得分:0)
你在PHP中“没有”线程。你可以做的一个技巧是对另一个做你想做的事情的php做一个curl请求。你需要确保你的curl很快就会超时,并且当curl超时关闭它的http连接时,另一个php不会死掉。
您还可以在此处阅读相关主题:cURL Multi Threading with PHP或cURL Multi Threading?