php 启动 php 脚本并继续
目前我有一行这样的代码:
system("/usr/bin/php myphpscript.php --param=".val);
有没有办法让 php not 等待脚本完成 - 而只是继续前进?
这是一个循环移动电子邮件,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
&
“在后台运行”,如本线程中所述。
祝你有美好的一天!
杰克
杰克
At the moment I have a line of code like this:
system("/usr/bin/php myphpscript.php --param=".val);
Is there a way to make php not wait for the script to finish - and just move on instead?
It's a loop moving email, and the myphpscript.php is parsing the mails. And I don't wan't to wait for myphpscript.php to finish each time - just start it and move on!
UPDATE SOLUTION
Found the answer here:
http://www.php.net/manual/en/function.exec.php#101506
passthru("/usr/bin/php myphpscript.php --param=".val." >> /dev/null 2>&1 &");
Exp:
/dev/null
I needed to write to something else that STDOUT, else PHP will hang untill script finish. So I write to /dev/null instead.
2>&1
Redirecting errors to STDOUT
&
"Run in background" as mentioned in this thread.
Have a good day!
jack
jack
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这应该有效
This should work
将后台命令扔到最后应该让脚本继续:
system("/usr/bin/php myphpscript.php --param=".val . "&");
为了安全起见,我还添加了 nohup,因为我认为当父 php 脚本完成时,这个子进程可能会被杀死:
system("nohup /usr/bin/php myphpscript.php --param=".val . " &");
Throwing the background command to the end should le the script continue:
system("/usr/bin/php myphpscript.php --param=".val . "&");
I'd also add nohup just to be safe, since I think this sub-process might get killed when the parent php script finishes:
system("nohup /usr/bin/php myphpscript.php --param=".val . "&");