在线程中运行子进程会干扰键盘输入

时间:2016-05-25 23:58:41

标签: python subprocess python-curses

我一直致力于使用subprocess.checkoutput通过ssh在远程服务器上执行命令的代码:

   subprocess.check_output(['ssh', '-o', 'StrictHostKeyChecking=no',
        '-i', 'key.pem', self.pDNS,
        'python script.py', html.replace('&', '\&'), '"
        {0}"'.format(ua.random)], stderr=subprocess.STDOUT)

此命令由多个线程运行,这些线程与不同的服务器进行通信,几乎没有共享资源,并且在我注意到的情况下工作正常。

但是,除了这段代码之外,我还使用curses为我编写了一个基本的用户界面来监控我的代码在做什么。我能够以类似于VIM或EMACS的方式使用键盘输入命令。但是,我注意到当我的代码执行上面的子进程行时,键盘输入变得非常不可靠和偶发,需要多次重复按键才能在程序中注册。

这是因为子进程在使用threading库时出现了一些问题吗?如果没有,是否有人知道可能导致此问题的原因?

0 个答案:

没有答案