2011-05-23 91 views
1

目前,我有这样的一行代码:PHP开始PHP脚本,并继续

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

有没有办法使PHP 等待脚本来完成 - 而只是继续前进,而不是?

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

Update解决方案

找到答案在这里:

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

& 

“在后台运行” 因为在这个线程提及。

祝您有美好的一天!

  • 插孔

  • 插孔

回答

0

这应该工作

exec("/usr/bin/php myphpscript.php --param=".val . '&'); 
+0

这个解决方案+ nohup给了我“nohup:重定向stderr到标准输出”+我的下标输出。没有nohup,只需给我下标输出。 (在我的终端)。 – jack 2011-05-23 10:30:03

0

投掷背景命令到底应该勒脚本继续:

系统( “/ USR/b in/php myphpscript.php --param =“.val。 “&”);

我也想补充的nohup只是为了安全起见,因为我觉得当父PHP脚本完成该子进程可能会被打死:

系统(“nohup的在/ usr/bin中/ PHP myphpscript.php - -param =“.val。”&“);

+0

我已经添加了您的更改,但是如果通过终端运行脚本 - 该脚本仍在等待myphpscript.php完成。然后我的IMAP连接将超时。有没有办法让主脚本在启动脚标后继续运行? – jack 2011-05-23 10:28:09