PHP scipts,通过shell_exex运行,在中间死亡

时间:2017-09-04 10:36:39

标签: php linux shell

我有一个像这样的PHP脚本:

foreach ($items as $item) {
    if ($condition) {
        shell_exec("php background.php > /dev/null 2>/dev/null 
        &");
    }
}

后台脚本大约需要10秒,并且每次if语句为true时都应该并行运行。问题在于,尽管通常它按计划进行,但有时后台脚本不会完全执行。这样的并行执行是否有任何限制,如果存在,服务器杀死一个进程来执行另一个进程是否正常?

UPD:顺便说一句,如果我加强了条件,减少了同时进程的数量,一切都像魅力一样。

1 个答案:

答案 0 :(得分:0)

你真的不应该开始这样的后台流程,不管它是一个相对较短的过程。

最好使用here中提出的替代方案:

  

简短版本为shell_exec('echo /usr/bin/php -q longThing.php | at now');,但原因在于此处包含的内容有点长。