【问题标题】:Qt QProcess read ssh verbose outputQt QProcess 读取 ssh 详细输出
【发布时间】:2014-05-09 03:51:11
【问题描述】:

我设法使用 QProcess 读取 ssh 详细模式输出。但是,就像在终端中一样,如果 ssh 成功登录,它将停止该过程。但是,在终端中,如果有使用 ssh 的连接,我可以看到详细输出。
我使用 ssh 进行动态转发,如下所示:

ssh -vfCND31338 -l username -p 22 myhost

问题是当 ssh 成功登录时 QProcess 将停止读取输出。对于其余的冗长,它不再读取。我该怎么办?

【问题讨论】:

  • 你的意思是要捕获登录后的所有命令?
  • 是的,要确保它什么时候断开,因为它随时断开
  • 您可以检查进程是否仍在间隔运行?
  • 我将使用 ps aux | grep ssh 和新的 QProcess 来执行此操作,但我更喜欢从 ssh 详细输出中读取 Write error: broken pipe
  • pgrep 更好:-)

标签: c++ qt ssh qtcore qprocess


【解决方案1】:

我认为这对于股票 Qt 来说是不可能的,但是例如如果 ssh 会话仍在运行,您可以按一定的时间间隔进行轮询。在这种情况下,pgrep 是你的朋友。

【讨论】: