Как подключиться из скрипта python к запущенному терминалу

Необходимо из python скрипта подключиться к заранее запущенному bash и передать ему какие-либо команды для выполнения (к примеру echo). Есть ли вариант, как это сделать? Может зная pid как-то можно?


Ответы (1 шт):

Автор решения: aleksandr barakin

вопрос сформулирован не совсем корректно (скорее совсем некорректно): вам требуется взаимодействие не с «терминалом» (т.е., с процессом, занимающимся эмуляцией терминала), а с процессом, использующим этот терминал в качестве устройства ввода/вывода.

естественно, как и при любом взаимодействии, требуется активное участие обеих «сторон».

от используемых в популярных дистрибутивах программ, выполняющих функции оболочки, ожидать готовности к такому взаимодействию бессмысленно: это не входит в их задачи.

но вы, конечно, можете с помощью того же процесса-оболочки запустить написанную вами программу, которая и будет ожидать поступления «команд» и как-то на них реагировать («выполнять» их).


ну а просто передать «в терминал» (т.е. процессу, эмулирующему терминал) какую-нибудь последовательность байт, конечно, не сложно: просто запишите их в «контрольный файл», связанный с этим «терминалом». если у записывающего процесса достаточно прав на запись, то эти байты «терминал» (точнее, процесс, эмулирующий терминал) отобразит в текущей позиции вывода. процессу оболочки (или любому другому, запущенному «в этом терминале») они, конечно, «не попадут».

→ Ссылка