PHP Exec:没有等待,没有丢弃输出,没有nohup

时间:2011-11-09 09:28:42

标签: php linux exec nohup

我需要在PHP中运行这样的命令:

exec('dosomething > saveit.txt');

除了我不希望PHP等待它完成。我也不想丢弃输出,我不想使用nohup,因为我在同一目录中使用了其他东西。

我也试过了pclose(popen('dosomething > saveit.txt','r'));但是没有用,它还在等待。

2 个答案:

答案 0 :(得分:4)

在命令末尾添加ampersand,所以:

exec('dosomething > saveit.txt &');

答案 1 :(得分:3)

exec()的文档中,有一个有趣的comment说:

  

花了很长时间才弄明白我接下来要发布的这一行。如果要在后台执行命令而不让脚本等待结果,可以执行以下操作:

 <?php
  passthru("/usr/bin/php /path/to/script.php ".$argv_parameter." >> /path/to/log_file.log 2>&1  &");
 ?>