2011-02-08 63 views
0

我在執行ssh腳本輸出到瀏覽器時遇到問題,而不是最終執行它。在處理冗長的腳本時php-capture控制檯輸出

腳本編寫:

$descriptorspec = array(
     0 => array("pipe","r"), 
     1 => array("pipe","w"), 
     2 => array("file","./error.log","a") 
) ; 
$cwd = 'path/path1' ; 
for($counter=1;$counter<= 10;$counter++) 
{ 
     $cmd="sudo test.sh arg1 arg2 arg3"; 
     $process = proc_open('ssh [email protected]', $descriptorspec, $pipes, $cwd) ; 
     if (is_resource($process)) 
     { 
      fwrite($pipes[0], $cmd) ; 
     fclose($pipes[0]) ; 
       echo stream_get_contents($pipes[1]) ; 
        fclose($pipes[1]) ; 
       $return_value = proc_close($process); 
      echo "$counter=command returned $return_value<br>"; 
     } 
} 

shell腳本需要10分鐘來執行。如果$ counter = 10,則花費太多時間才能獲得屏幕上顯示的實際輸出。我要求它在執行時持續顯示流輸出,以便我們知道發生了什麼。 是否有緩衝的情況?

回答

0

嘗試flush() function

+1

謝謝。你的意思是說 - echo stream_get_contents($ pipes [1]); flush(); – rahul 2011-02-08 12:20:47

相關問題