我一直在研究一些用于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
为我编写了一个基本的 UI 来监控我的代码在做什么。我能够以类似于 VIM 或 EMACS 的方式使用键盘输入命令。但是,我注意到当我的代码执行上面的子进程行时,键盘输入变得非常不可靠和零星,需要多次重复按键才能在程序中注册。
这是因为子进程与threading
库配合得很好吗?如果没有,有谁知道可能导致此问题的原因是什么?