2014-07-07 1 views
1

script2.php를 10 초 지연 시키려하지만 전체 script1.php를 지연 시키려고합니다. 상단에있는 script2.php에 sleep (10)을 배치하면 불행하게도 script1은 하단의 출력에 의해 입증 된 것처럼 지연됩니다.잠자기가 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에 "&>/dev/null &"대신에/null 2>/dev/null & "이 작동하는 것 같습니다. – Dennis

답변

0

I 출력 잘못 아무것도 표시되지 않습니다, 당신이 10 초에 의해 실행을 지연, 당신은이 결과를 얻을. PHP는 끝 간부 기능 대기하므로 프로그램을 또한이 관련

를 계속하기 전에, 첫 번째 스크립트 이후에 실행 script2.php 기대 (와 같은 대답을)하지 마십시오 How to execute shell commands synchronously in PHP

관련 문제