我一直致力于使用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
库时出现了一些问题吗?如果没有,是否有人知道可能导致此问题的原因?