PHP SSH2 Exec - получение PID
Как я могу получить PID для процесса, выполняемого через SSH2.
Что я пробовал:
ssh2_exec($SSH2, 'echo `ps aux | grep -F "' . $StartCommand . '" |
grep -v -F "grep" | awk \'{ print $2 }\'`');
а также
ssh2_exec($SSH2, $StartCommand.' > /dev/null 2>&1 & echo $!');
Но в результате я получаю в echo Resource id #2 или Resource id #3 или Resource id #4
1 ответ
Вы должны использовать функцию ssh2_fetch_stream, чтобы получить этот ресурс.
$stdout_stream = ssh2_exec($SSH2, $command);
$err_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);
$dio_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDIO);
stream_set_blocking($err_stream, true);
stream_set_blocking($dio_stream, true);
$result_err = stream_get_contents($err_stream);
$result_dio = stream_get_contents($dio_stream);