SSH接続を介してリモートPythonインタープリターを制御し、Python自体から駆動できるようにしたいと思います。
基本的なテンプレートがあります。
ssh.connect(servername, serverport, username, key_filename=key_filename)
transport = ssh.get_transport()
channel = transport.open_session()
channel.exec_command(PATH_TO_EXEC)
while True:
r, w, e = select.select([channel], [], [], 1)
if channel in r:
try:
if channel.recv_ready():
x = channel.recv(64)
elif channel.recv_stderr_ready():
x = channel.recv_stderr(64)
else:
continue
if len(x) == 0:
print '\r\n*** EOF\r\n',
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
これにより、リモートアプリケーションとpdb
:で通信できますchannel.set("command\n")
。
bash
、で完全に動作しますが、 (v2)gdb
から出力ストリームを取得するために私ができることは何もありませんpython
Pythonはその出力ストリームをどのように処理しますか、なぜ私のコードはそれで動作しませんか?