Я хочу запустить команду 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()
, и я мог бы избежать потоков, если бы у меня был неблокирующий метод получения вывода - любые мысли?