我正在使用Paramiko调用shell,以便通过ssh连接使用CLI。这个CLI的问题是如果我没有使用CTRL + C专门关闭它,那么在不重新启动我的系统的情况下,程序将无法再次打开。
我尝试过以下命令:
SSH.send("^C\n")
SSH.send("\x003")
还有另一种方法可以调用这些吗?我再次使用paramiko.SSHClient()
建立SSH连接,然后使用ssh.invoke_shell()
调用shell,现在我需要将CTRL + C发送到该shell以关闭shell(而不是ssh连接)
答案 0 :(得分:12)
你的第二个例子是正确的,但是格式不正确。你实际上在那里得到一个2个字符的字符串。
SSH.send(“\ x03”)应该可以解决问题。
但是,我可能已经使用了它。
SSH.send(CHR(3))
答案 1 :(得分:1)
基于:https://stackoverflow.com/a/11190794/565212
你可以 -
或者:调用client.exec_command()时传递get_pty = True。然后client.close()终止远程尾部。
或者:在调用channel.exec_command()之前执行channel.get_pty()。然后channel.close()终止远程尾部。