tail -f logfile
コマンドを、pythonのparamikoモジュールを使用してリモートマシン上で実行したいとします。私は、次の方法で、これまでにそれをしようとしてきた:Pythonのparamikoモジュールで長時間実行されるsshコマンド(および終了方法)
interface = paramiko.SSHClient()
#snip the connection setup portion
stdin, stdout, stderr = interface.exec_command("tail -f logfile")
#snip into threaded loop
print stdout.readline()
私は必要な限り実行するコマンドをたいが、私は2つの問題を抱えて:私はこれをどのように
- を停止しますきれいに?私はチャンネルを作ってから、チャンネルで
shutdown()
コマンドを使ってみることを考えましたが、それは面倒です。チャンネルの標準入力にCtrl-C
というような送信を行うことはできますか? readline()
ブロックをブロックすることができます。出力を取得するノンブロッキングの方法があれば、スレッドを避けることができます。
SSHClient()はすでにスレッドを内部的に使用しています。 – joeforker