Paramiko ssh服务器在命令执行>挂起期间死亡

2024-03-28 18:03:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用paramiko用python2.7编写一个小的自动化软件。在执行过程中,远程机器(ssh服务器)可能会死机,我的paramiko客户机无法识别它并挂起recv_exit_status()方法。如果我为通道或传输设置了超时,它什么也不会做。传输.set_keepalive()也帮不上忙。在

channel = transport.open_session()
channel.exec_command(cmd)
exit_code = channel.recv_exit_status()

我认为另一种方法也可能是好的:

^{pr2}$

但是is_active()始终返回True,它从不更改为False,即使在半分钟后。。。我的软件是高度线程化的,因此如果发生这种情况,线程将永远挂在阻止方法recv_exit_status()上并变成僵尸,我不能允许这样(主要是从专业角度来看)。另外,我知道活动轮询通常是糟糕的编程技术,但我还是尝试过。。。谢谢你们的帮助


Tags: 方法服务器机器paramiko客户机软件远程过程