【问题标题】:python pty module - buffer hangs?python pty 模块 - 缓冲区挂起?
【发布时间】:2011-12-06 19:31:23
【问题描述】:

我正在尝试制作一个小模块,它可以打开 ssh 连接并允许通过 ssh 发送命令并返回命令的输出。因此,应该只有一个 ssh 连接(这样多个命令不会导致自动阻塞)。我知道 paramiko,但我不能使用它,因为由于其他限制,我必须使用 python3.2。

我写的模块在这里:http://kbicker.web.cern.ch/kbicker/ssh.py

原则上,它是有效的。但是,当使用 cat 读取文本文件时,程序会挂起。我确定这是因为从 pty 读取新行挂起。我认为,存在某种缓冲问题,但我不知道如何解决它。

如果您对我的代码提出任何其他建议,我也将不胜感激。

提前感谢您的帮助!

【问题讨论】:

    标签: python ssh buffer pty subprocess


    【解决方案1】:

    试试pexpect。我遇到了类似的问题,它解决了。

    【讨论】:

    • 我不想使用 pexpect,因为它在 python3.2 中也不可用。我通过更改 ssh 连接的使用方式解决了我的问题,请参阅我的答案(在我写这篇文章时写...)。
    【解决方案2】:

    解决了,或者至少解决了这个问题:

    通过使用带有 ssh -M 选项的线程,我可以打开一个主 ssh 连接并让命令打开它们自己的 ssh 子进程,该子进程通过主连接进行连接,从而减少了打开多个连接的需要。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多