我的程序将“ssh”作为子进程生成,连接到服务器,然后能够写入流并读取其输出。
一切正常。当我将“ls”写入流程流时,我会得到一个文件列表。
但是现在,我希望向此进程发送密钥快捷方式,以便我可以在ssh会话中中止正在运行的进程。
我知道这也可以通过流完成,但我在哪里可以阅读我必须发送给流程以使其理解我的关键快捷方式?
感谢您的帮助!
答案 0 :(得分:4)
使用正常的ssh会话,在换行符之后发送'〜'是转义字符来控制ssh程序本身。例如'〜。'将关闭连接。
在manpage上搜索“代字号”。
<强>更新强>:
在重新阅读你的问题时,我想你可能想要将Ctrl- *发送到在ssh会话中运行的远程进程,而不是与ssh进程本身交谈。您可能只能发送Ctrl键将生成的ASCII序列:
sshprocess.stdin.write("\x03")
ASCII字符0x03是Ctrl-C的内容。这是从古代的哑终端。有关ASCII control sequences的更多信息。