【问题标题】:node.js - sending key-shortcuts to child processnode.js - 向子进程发送快捷键
【发布时间】:2011-08-04 17:27:32
【问题描述】:

我的程序生成“ssh”作为子进程,连接到服务器,然后能够写入流并读取其输出。

这一切都很好。当我将“ls”写入流程流时,我会得到一个文件列表。

但是现在,我想向这个进程发送快捷键,这样我就可以在 ssh 会话中中止正在运行的进程。

我知道这也可以通过流来完成,但是我在哪里可以了解我必须向进程发送什么以使其理解我的快捷键?

感谢您的帮助!

【问题讨论】:

    标签: shell ssh node.js keyboard-shortcuts


    【解决方案1】:

    在正常的 ssh 会话中,在换行符后发送“~”是控制 ssh 程序本身的转义字符。例如“~。”将关闭连接。

    manpage 上搜索“波浪号”。

    更新

    在重新阅读您的问题时,我认为您可能希望将 Ctrl-* 发送到在 ssh 会话中运行的远程进程,而不是与 ssh 进程本身交谈。您可能只能发送 Ctrl 键生成的 ASCII 序列:

    sshprocess.stdin.write("\x03")
    

    ASCII 字符 0x03 是 Ctrl-C 变成的。这来自于哑终端的远古时代。更多关于ASCII control sequences

    【讨论】:

    • 谢谢!我想这就是我需要的。当我理解这一点时,模拟 Ctrl+C 将需要以下代码: sshprocess.stdin.write("\n~^C");你认为这是正确的吗?
    • 嗯,我想我一定不明白你的问题。 Ctrl-C 不是 ssh 转义序列。您是否尝试通过 ssh 连接向远程 shell/命令发送 Ctrl-C?
    • 是的,这正是我想要做的。我想实现一个基于 web 的 ssh shell(像 putty,但是在浏览器中)。我也想让快捷键起作用。
    • 阿门!而已!!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多