2016-10-24 7 views
0

ファブリックを使用していて、リモートマシン上でいくつかのコマンドを実行しようとしています。 私はこの仕事をするpythonクライアントを書いています。ファブリックはssh接続を閉じません

@task 
@serial 
def execute_command(timeout, command): 
    if timeout == -1: 
     return run(command, shell=False, pty=False, warn_only=True) 
    else: 
     return run(command, shell=False, pty=False, warn_only=True, timeout=int(timeout)) 

これは、ジョブをスケジュールしますが、問題は、30秒以上かそこらを取る仕事があるたびに、それはEXECUTE_COMMANDから出てくることはありませんということです。タイムアウトも機能しません。

ss -t | lessを実行してソケットアクティビティをチェックすると、そのコマンドに関するssh接続はまだ有効です。そして、私はそれを殺すまで、それは活動的なままです。それは決して死ぬことはありません。

誰でも私にこれを手伝ってもらえますか?私はそれが出てきてタイムアウトが働くようにしたい。

答えて

0

それを実演しました。

実行の引数で擬似端末オプションを無効にしたとき、私は自分が望むものを達成することができました。

関連する問題