私は2つのスクリプトを持っています:
最初のものには、次のコードが含まれています。
<?php
// ...
echo date('H:i:s'), PHP_EOL;
$stream = ssh2_exec($session, 'php my-second-script.php');
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream, 4096)) {
$data .= $buf;
}
fclose($stream);
echo date('H:i:s'), PHP_EOL;
// ...
2 番目のものには、次のコードが含まれています。
<?php
sleep(15);
echo 'OK', PHP_EOL;
最初のスクリプトを実行すると、2 番目のスクリプトが実行されるのを待つが、実行されない場合がある理由がわかりません。
たとえば、動作する場合、次の出力があります。
14:16:10
14:16:25
そして時々私はこれを持っています:
14:17:13
14:17:14
投稿ssh2_exec: wait end of a process to run nextも読みました。答えた人は、「ストリームが最後まで読み取られない場合、コマンドが正しく終了しない可能性がある」と述べました。誰かが私にこれを説明できますか?