php5在后台进行系统调用

时间:2016-01-13 23:11:59

标签: php system

我正在尝试从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秒钟才能打印/更新“完成”消息。

由于

1 个答案:

答案 0 :(得分:0)

你在PHP中“没有”线程。你可以做的一个技巧是对另一个做你想做的事情的php做一个curl请求。你需要确保你的curl很快就会超时,并且当curl超时关闭它的http连接时,另一个php不会死掉。

您还可以在此处阅读相关主题:cURL Multi Threading with PHPcURL Multi Threading?