我想使用帶有 get_pty=False 選項的 paramiko 客戶端。我們有辦法發送中斷信號嗎?我有一些想法喜歡使用 client.close() 但我更想知道為什么發送"\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發送中斷信號嗎get_pty=False?
1 回答

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