如何检测和删除与Fabric的空闲连接?

时间:2012-09-04 12:32:04

标签: python fabric

#import ssh
import socket
from fabric.operations import run

def connect_and_wait():
    #ssh.config.socket.setdefaulttimeout(5)
    socket.setdefaulttimeout(5)
    print('SSTART')
    run('echo START')
    run('sleep 10')
    run('echo END')
    print('EEND')

上面的脚本打印所有内容,没有任何错误/异常。

Python 2.6.5,Fabric 1.4.2。

  • socket.setdefaulttimeout()不起作用。
  • ssh.config.socket.setdefaulttimeout()不起作用。
  • fabric.api.env['timeout']仅用于连接阶段。

1 个答案:

答案 0 :(得分:1)

Fabric使用与远程主机的“延迟”连接,并且可以在主机上执行任务时自动重新连接,并且连接丢失。似乎无法显式删除空闲连接,但您可以关闭所有连接并让结构重新连接到“活动”主机。 fabric.network.disconnect_all()可以做到这一点。