我想使用帶有 get_pty=False 選項(xiàng)的 paramiko 客戶端。我們有辦法發(fā)送中斷信號(hào)嗎?我有一些想法喜歡使用 client.close() 但我更想知道為什么發(fā)送"\0x03"失敗get_pty=False。import paramikoclient = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())connection_param= {'hostname': '192.168.255.1', 'username': 'username', 'password': 'password', 'port': '22', 'timeout': 15, 'key_filename': None, 'pkey': None}client.connect(**connection_param)stdin, stdout, stderr = client.exec_command("tail -f /tmp/test.log", bufsize=-1, timeout=None, get_pty=True)time.sleep(1)print(stdin.channel.exit_status_ready()) # Falsestdin.write("\x03".encode())stdin.channel.close()print(stdout.read().decode(errors='ignore')) # File outputprint(stdin.channel.exit_status_ready()) # Truestdin, stdout, stderr = client.exec_command("tail -f /tmp/test.log", bufsize=-1, timeout=None, get_pty=False)time.sleep(1)print(stdin.channel.exit_status_ready()) # Falsestdin.channel.close() # hangs in next step for stdin.write("\x03".encode())print(stdout.read().decode(errors='ignore')) # File outputprint(stdin.channel.exit_status_ready()) # True我們還有其他方法可以使用stdin.write()for發(fā)送中斷信號(hào)嗎get_pty=False?
1 回答

慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
我相信這Ctrl+C是一個(gè)終止信號(hào)。如果沒(méi)有終結(jié)符 ( get_pty=false
),則沒(méi)有任何特殊含義。
如果要終止遠(yuǎn)程命令,只需關(guān)閉“exec”通道即可。
stdin.channel.close()
你已經(jīng)在做什么了。
添加回答
舉報(bào)
0/150
提交
取消