1

私は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も読みました。答えた人は、「ストリームが最後まで読み取られない場合、コマンドが正しく終了しない可能性がある」と述べました。誰かが私にこれを説明できますか?

4

0 に答える 0