ssh スクリプトの出力を最後にではなく、実行時にブラウザにキャプチャすることに問題があります。
書かれたスクリプト:
$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 user@server', $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>";
}
}
シェル スクリプトの実行には 10 分かかります。$counter=10 の場合、実際の出力を画面に表示するのに時間がかかりすぎます。何が起こっているのかを知るために、実行中にストリーム出力を表示し続ける必要があります。バッファリングのケースはありますか?