【问题标题】:PHP SSH2 Exec - Getting PIDPHP SSH2 Exec - 获取 PID
【发布时间】:2015-07-27 12:58:05
【问题描述】:

如何获取通过 SSH2 执行的进程的 PID。

我尝试过的:

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

【问题讨论】:

  • 哪个PID? ssh2_exec 在远程服务器上执行命令...您想在您的服务器上还是远程上知道它?为什么你想知道 PID?

标签: php pid ssh2-exec


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2021-02-10
    相关资源
    最近更新 更多