Надсилання входу на екранне сеанс ззовні


18

Мій сценарій такий:

У мене сеанс на екрані працює у віддаленому місці. Всередині цього екрану розташована консолідована програма. При запуску без екрана ця програма запускається в терміналі і приймає команди на своєму стандартному вході.

Що я хочу - це спосіб віддаленої передачі команди на екран, щоб ця команда була отримана консольною програмою. Можливо так:

Мій ПК -> SSH Відправити повідомлення автоматично -> Сеанс екрану -> Програма (команда запуску отримана)

Тож з віддаленого ПК я можу надсилати через SSH команди на екран, який надсилає їх програмі. Програма приймає їх і виконує.

Відповіді:


17

Якщо я правильно розумію, ви хочете надіслати вхід програмі, що працює під час екранного сеансу. Це можна зробити за допомогою stuffкоманди екрана . Використовуйте -Xопцію екрана, щоб виконати команду під час сеансу на екрані, не додаючи до неї.

screen -S sessionname -p windowname -X stuff 'command1
command2
'

Якщо ви хочете побачити висновок програми, см hardcopy, logі logfileкоманди.


Вже спробувала команду "stuff", але вона надсилає лише команди, які є з екрана. Ви бачите, що він приймає лише ті команди, які пов'язані з екраном, а не програму, яку я використовую.
Луїс Альварадо

@CYREX: stuffнадсилає символи точно так, як ніби ви їх ввели. Що саме ви спробували, який був намічений ефект і що натомість сталося?
Жил "ТАК - перестань бути злим"

Я бачу, у вас є -p частина. У мене цього не було. Додано цю частину і вона відправляє команду зараз, але як я можу натиснути ENTER для кожної команди?
Луїс Альварадо

Знайшов це. Addint $ перед цитатами і маючи C як втечу в ньому. Як це -X речі $ 'показати користувачам \ n'
Луїс Альварадо

@CYREX: -pнеобхідна (або принаймні гарна ідея), якщо є більше одного вікна. Щоб "натиснути Enter", просто включіть новий аргумент в аргумент (тобто всередині лапок), як я це зробив.
Жил 'ТАК - перестань бути злим'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.