gpt4 book ai didi

python - 带有 paramiko 的多进程模块

转载 作者:太空狗 更新时间:2023-10-30 01:03:39 25 4
gpt4 key购买 nike

我正在尝试使用 paramiko python 模块 (1.7.7.1) 向一组远程服务器并行执行命令和/或 xfer 文件。一项任务如下所示:

jobs = []   
for obj in appObjs:
if obj.stop_app:
p = multiprocessing.Process(target=exec_cmd, args=(obj, obj.stop_cmd))
jobs.append(p)
print "Starting job %s" % (p)
p.start()

“obj”包含一个 paramiko SSHClient、transport 和 SFTPClient。 appObjs 列表包含大约 25 个这样的对象,因此有 25 个连接到 25 个不同的服务器。

我在回溯中使用 paramiko 的 transport.py 得到以下错误

raise AssertionError("PID check failed. RNG must be re-initialized after fork(). 
Hint: Try Random.atfork()")

我根据 https://github.com/newsapps/beeswithmachineguns/issues/17 上的帖子修补了/usr/lib/python2.6/site-packages/paramiko/transport.py但它似乎没有帮助。我已经验证了上面提到的路径中的 transport.py 是正在使用的那个。 paramiko 邮件列表似乎已经消失。

这看起来像是 paramiko 中的问题还是我误解/误用了多处理模块?有人愿意提出一个实用的解决方法吗?非常感谢,

最佳答案

更新:正如@ento 指出的那样, fork 的 ssh 包已经是 merged back into paramiko所以下面的答案现在无关紧要,您现在应该再次使用 Paramiko。

<罢工>这是 Paramiko 中的一个已知问题,已在 Paramiko 的一个分支(停滞在版本 1.7.7.1)中得到修复,该分支现在被称为 ssh package on pypi。 (在撰写本文时,它为 1.7.11 版带来了一些东西)。

显然,将一些重要补丁添加到主线 Paramiko 时出现了问题,维护者没有回应,所以 @bitprophet ,Fabric 的维护者,在新包名下 fork 了 Paramiko ssh package on pypi .可以看到你提到的具体问题是 discussed here这也是他决定 fork 的原因之一;你可以阅读 gory details如果你真的想要。

关于python - 带有 paramiko 的多进程模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com