1
#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、ファブリック 1.4.2。

  • socket.setdefaulttimeout()動作しません。
  • ssh.config.socket.setdefaulttimeout()動作しません。
  • fabric.api.env['timeout']位相のみを接続するためのものだと思います。
4

1 に答える 1

1

ファブリックはリモート ホストへの「遅延」接続を使用し、ホストでタスクを実行して接続が失われたときに自動的に再接続できます。アイドリング接続を明示的にドロップする方法はないようですが、すべての接続を閉じて、ファブリックを「アクティブな」ホストに再接続させることができます。fabric.network.disconnect_all()トリックを行います。

于 2012-10-14T10:36:09.560 に答える