问题描述
|
目前,我有一行这样的代码:
system(\"/usr/bin/PHP myPHPscript.PHP --param=\".val);
有没有一种方法可以使PHP不等待脚本完成-而是继续前进?
这是一个循环移动的电子邮件,而myPHPscript.PHP正在解析邮件。而且我不想等待每次myPHPscript.PHP完成-只需启动它并继续前进即可!
更新解决方案
在这里找到答案:
http://www.PHP.net/manual/zh/function.exec.PHP#101506
passthru(\"/usr/bin/PHP myPHPscript.PHP --param=\".val.\" >> /dev/null 2>&1 &\");
经验值:
/ dev /空
我需要向STDOUT写入其他内容,否则PHP将挂起直到脚本完成。所以我改为写到/ dev / null。
2>&1
将错误重定向到STDOUT
&
如本主题所述,“在后台运行”。
祝你有美好的一天!
插口
插口
解决方法
这应该工作
exec(\"/usr/bin/php myphpscript.php --param=\".val . \'&\');
,如果脚本继续运行,则将background命令抛到最后:
系统(\“ / usr / bin / php myphpscript.php --param = \”。val。\“&\”);
为了安全起见,我还会添加nohup,因为我认为当父php脚本完成时,此子进程可能会被杀死:
系统(\“ nohup / usr / bin / php myphpscript.php --param = \”。val。\“&\”);