我们在混合线程和分叉时遇到的问题基本上与本博客文章中描述的相同:http://rachelbythebay.com/w/2011/06/07/forked/
(混合线程和分支导致某些子进程挂起在FUTEX调用上)
她的分析基本上是他们的SSH库正在创建各种线程,她得出结论,他们需要不使用ssh
我们需要ssh,有没有人知道一个不生成线程的python ssh库?
答案 0 :(得分:0)
SSH是一个非常复杂的协议,支持各种功能,如端口转发,X转发,tty等等,所以不太可能有“简单”的实现。
至于多线程,有一个twisted.conch,它有不得不运行一个反应堆的缺点,虽然它可能更容易集成。
另一个解决方案是使用python的multiprocessing
包在工作者中执行SSH工作。这些工人不需要分叉,也不需要工作单位,做必要的ssh工作并报告结果。