1

我有两个脚本:

第一个包含以下代码:

<?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;
// ...

第二个只包含以下代码:

<?php
sleep(15);
echo 'OK', PHP_EOL;

我不明白为什么有时当我运行我的第一个脚本时,它会等待第二个脚本运行但有时没有。

例如,当它工作时,我有以下输出:

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