node.js - отправка сочетаний клавиш дочернему процессу - PullRequest
5 голосов
/ 13 апреля 2011

Моя программа порождает "ssh" как дочерний процесс, подключается к серверу, а затем может записывать в поток и читать его выходные данные.

Все это прекрасно работает.Когда я записываю «ls» в поток процесса, я получаю список файлов.

Но теперь я хочу отправить сочетания клавиш этому процессу, чтобы я мог прервать запущенный процесс в сеансе ssh.

Я знаю, что это также можно сделать через поток, но где я могу прочитать о том, ЧТО я должен отправить процессу, чтобы он понял мои сочетания клавиш?

Спасибо за любую помощь!

1 Ответ

4 голосов
/ 13 апреля 2011

В обычном сеансе ssh отправка '~' после новой строки является escape-символом для управления самой программой ssh. Например '~.' закроет соединение.

Поиск слова «тильда» на справочной странице .

Обновление

Перечитывая ваш вопрос, я думаю, что вы, вероятно, захотите отправить Ctrl- * удаленному процессу, запущенному в сеансе ssh, а не разговаривать с самим процессом ssh. Вы можете просто отправить последовательность ASCII, которую сгенерирует клавиша Ctrl:

sshprocess.stdin.write("\x03")

Символ ASCII 0x03 - это то, чем становится Ctrl-C. Это из древних дней тупых терминалов. Подробнее о ASCII контрольных последовательностях .

...