PHP remote ssh script get stderr and determine when script execution is over

时间:2018-03-25 20:37:41

标签: php ssh

I am execute a remote script using PHP. I redirect the ouput of the script to a file so i can get the output. But i want to know when the script has finished so i can be able to show the complete output.

public function actionLauncher()
{
    $connection = ssh2_connect('server', 22);
    ssh2_auth_password($connection, 'test', 'test');
    $stream = ssh2_exec($connection, '. /home/test/counter.sh > out2.txt 2>&1 &');

    stream_set_blocking($stream, true);
    $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);

    $stream = ssh2_exec($connection, 'exit'); 
    unset($connection);
}

public function actionView()
{
    $connection = ssh2_connect('server', 22);
    ssh2_auth_password($connection, 'test', 'test');
    $stream = ssh2_exec($connection, 'cat   /home/test/out2.txt');

    stream_set_blocking($stream, true);
    $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
    $processStatus = stream_get_contents($stream_out);
    echo $processStatus;

    $stream = ssh2_exec($connection, 'exit'); 
    unset($connection);

}

I want to determine when the counter.sh has finished and the exit status so i can call the actionView() method to show the output.

0 个答案:

没有答案