2014-07-07 46 views
1

我想延遲執行script2.php 10秒,但不是整個script1.php。當我在頂部的script2.php中放置一個睡眠(10)時,不幸的是,腳本1也延遲了底部輸出的證實。睡眠不正確地影響調用PHP腳本

<?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  
+0

「>/dev的/ null 2>/dev/null&「而不是」&>/dev/null&「似乎工作,不知道爲什麼... – Dennis

回答

0

我看不出有什麼毛病輸出,你延遲以10秒執行,你得到它的結果。不要指望script2.php比第一個腳本後執行,因爲PHP將等待執行函數結束,持續計劃

還涉及到在此之前(並且有相同的答案):How to execute shell commands synchronously in PHP