1

目前我有这样一行代码:

system("/usr/bin/php myphpscript.php --param=".val);

有没有办法让 php等待脚本完成 - 而是继续前进?

这是一个循环移动电子邮件,myphpscript.php 正在解析邮件。而且我不想每次都等待 myphpscript.php 完成 - 只需启动它并继续前进!

更新解决方案

在这里找到了答案:

http://www.php.net/manual/en/function.exec.php#101506

passthru("/usr/bin/php myphpscript.php --param=".val." >> /dev/null 2>&1 &");

经验:

/dev/null

我需要写其他的 STDOUT,否则 PHP 将挂起,直到脚本完成。所以我改为写 /dev/null 。

2>&1

将错误重定向到 STDOUT

&

此线程中提到的“在后台运行”。

祝你有美好的一天!

  • 杰克

  • 杰克

4

2 回答 2

0

这应该工作

exec("/usr/bin/php myphpscript.php --param=".val . '&');
于 2011-05-23T10:15:49.953 回答
0

将后台命令扔到最后应该让脚本继续:

system("/usr/bin/php myphpscript.php --param=".val ."&");

为了安全起见,我还添加了 nohup,因为我认为当父 php 脚本完成时,这个子进程可能会被杀死:

system("nohup /usr/bin/php myphpscript.php --param=".val ."&");

于 2011-05-23T10:16:31.950 回答