不正确的睡眠影响PHP-script的调用


Sleep incorrectly affecting calling PHP-script

我试图延迟执行script2.php 10秒,但不是整个script1.php。当我在顶部的script2.php中放置一个sleep(10)时,不幸的是,正如底部的输出所证明的那样,script1也被延迟了。

<?php
{
    echo date("H:i:s");
    exec("nohup php script2.php $id $host '$status' '$nagios_host' &> /dev/null &");
    echo date("H:i:s");
    echo("nohup script2.php $id $host '$status' '$nagios_host' &> /dev/null &");
    echo date("H:i:s");
    echo $id." - ".$host." - ".$status." - ".$nagios_host."'n";
}       
?>  

这是script1.php的输出:

11:09:35
nohup: redirecting stderr to stdout
11:09:45
nohup php script2.php 1341234 blabla.com 'blabla alert => CRITICAL' 'nagios01.blabla.com' &> /dev/null &
11:09:45
1341234 - blabla.com - blabla alert => CRITICAL - nagios01.blabla.com       

我没有看到任何错误的输出,你延迟执行10秒,你得到它的结果。不要期望script2.php在第一个脚本之后执行,因为PHP将等待exec函数结束,然后再继续执行

程序。

也与此相关(并且有相同的答案):如何在PHP中同步执行shell命令