Я хочу запустить команду tail -f logfile на удаленном компьютере с использованием модуля python paramiko. Я делаю это до сих пор следующим образом:
interface = paramiko.SSHClient()
#snip the connection setup portion
stdin, stdout, stderr = interface.exec_command("tail -f logfile")
#snip into threaded loop
print stdout.readline()
Я бы хотел, чтобы команда выполнялась столько, сколько необходимо, но у меня есть две проблемы:
- Как я могу прекратить это чисто? Я подумал о создании канала, а затем с помощью команды
shutdown()на канале, когда я закончил с ним, но это кажется беспорядочным. Возможно ли сделать что-то вроде отправкиCtrl-Cна канал stdin? -
readline(), и я мог бы избежать потоков, если бы у меня был неблокирующий метод получения вывода - любые мысли?