python pty模块 - 缓冲区挂起?

时间:2011-10-13 09:27:59

标签: python ssh buffer pty subprocess

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

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

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

我也很感激有关我的代码的任何其他建议。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

解决,或者至少解决它:

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

答案 1 :(得分:0)

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