6

ウェブサイトには次のように書かれています。

接続を閉じる: ファブリックの接続キャッシュは、接続自体を閉じることはありません。これは、それを使用しているものに任せます。fab ツールはこの管理を行います。開いているすべての接続を繰り返し処理し、終了する直前にそれらを閉じます (タスクが失敗したかどうかに関係なく)。

ライブラリ ユーザーは、プログラムを終了する前に、開いているすべての接続を明示的に閉じる必要がありますが、将来的にはこれを簡単にする予定です。

どこでも検索しましたが、接続を切断または閉じる方法がわかりません。ホストをループして env.host_string を設定しています。動作していますが、終了時にハングします。閉じる方法について何か助けはありますか?繰り返しますが、fabfile ではなくライブラリを使用しています。

4

4 に答える 4

4

開いているすべての接続を反復する必要がない場合は、fabric.network.disconnect_all()探しているものです。docstring の読み取り

"""
現在接続されているすべてのサーバーから切断します。fabのメイン ループの最後で使用され、ライブラリ ユーザーによる使用も意図されています。
"""

于 2011-04-03T18:01:00.983 に答える
4

fabric の main.py には次のものがあります。

from fabric.state import commands, connections

for key in connections.keys():
    if state.output.status:
        print "Disconnecting from %s..." %, denormalize(key), connections[key].close()

fabric.state.connections は、次の値を持つ辞書です: paramiko.SSHClient

それで、私はそれらを閉じに行きます。

于 2010-08-03T00:51:38.177 に答える