Paramiko: Конвейер блокируется навсегда при чтении

У меня проблема с настройкой конвейера для работы с paramiko.

Это работает:

ssh = paramiko.SSHClient()
[...]
stdin, stdout, stderr = ssh.exec_command("find /tmp")
stdout.read()

Это не работает (блокируется навсегда на stdout.read ()):

[...]
stdin, stdout, stderr = ssh.exec_command("bash -")
stdin.write("find /tmp\n")
stdin.close()
stdout.read()

Есть идеи?

РЕДАКТИРОВАТЬ:

Я посмотрел исходный код paramiko, и ChannelFile.close на самом деле ничего не делает с точки зрения коммуникации. Поэтому я посмотрел на API канала и похоже, это работает:

stdin.write("find /tmp\n")
stdin.flush()
stdin.channel.shutdown_write()
stdout.read()
10
задан hmn 8 November 2011 в 22:06
поделиться