小编mur*_*phy的帖子

paramiko的多进程模块

我正在尝试使用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()
Run Code Online (Sandbox Code Playgroud)

除其他外,"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()")
Run Code Online (Sandbox Code Playgroud)

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

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

python ssh paramiko

5
推荐指数
1
解决办法
6798
查看次数

标签 统计

paramiko ×1

python ×1

ssh ×1