2012-03-10 26 views

答えて

1

"test"コマンドは、指定された式によって決まるステータスで終了するため、終了します。

コマンドはバックグラウンドで実行されていますが、すぐに終了します。

別のコマンドを使用すると、バックグラウンドで実行されています。

ロブ

+0

「スリープ100」。また、[nohup](http://ss64.com/bash/nohup.html)をチェックしてください。 –

1

paramikoはあなたがbashでいたかのように通常のシェル魔法&を追加する必要はありませんので、各.exec_command()ためのスレッドを生成します。 .exec_command()は即座に戻りますと、あなたはこれがspearateスレッドでstdoutにtestリダイレクト標準エラー出力を実行します(標準入力、標準出力、sterr)

client.exec_command('test > /dev/null 2 > &1') 
time.sleep(5) 
client.exec_command('killall -9 test') 
... 
# the remot command will be force killed if you close the channel. (may depend on sshd implementation) 

そのバッファを読むために世話をする必要があります。メインスレッドは5秒間スリープ状態になり、別のスレッドが生成されてテストが終了します。もしあなたがそれをkillしなければ、リモートのsshdはセッション中に生成されたすべてのprocsを処理します。

関連する問題