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,則花費太多時間才能獲得屏幕上顯示的實際輸出。我要求它在執行時持續顯示流輸出,以便我們知道發生了什麼。 是否有緩衝的情況?
謝謝。你的意思是說 - echo stream_get_contents($ pipes [1]); flush(); – rahul 2011-02-08 12:20:47