目前我有一行这样的代码:
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
&
"在后台运行",如此线程中所述。
祝你今天开心!
千斤顶
千斤顶
这应该有效
exec("/usr/bin/php myphpscript.php --param=".val . '&');
将后台命令扔到最后应该 le 脚本继续:
system("/usr/bin/php myphpscript.php --param=".val ."&");
为了安全起见,我还会添加nohup,因为我认为当父php脚本完成时,这个子进程可能会被杀死:
system("nohup/usr/bin/php myphpscript.php --param=".val ."&");