Как запустить новый процесс в новом окне в существующем сеансе экрана GNU вне сеанса

Я задал здесь аналогичный вопрос и довольно близко подошел к тому, что ищу

Как запустить процесс из другого приложения, а затем открыть терминал для этого процесса на экране GNU

... но это не совсем подходит к тому, что мне нужно, а именно к запуску процесса в новом окне (а не в существующем окне) в существующем сеансе экрана (а не в новом сеансе экрана).

Если вы находитесь в командной строке во время сеанса экрана, вы можете сделать это:

screen [screen options] command param1 param2

Но как это сделать, если вы находитесь вне сеанса? Например, если вы хотите запустить это как задание cron?


person Charlie    schedule 06.08.2009    source источник


Ответы (1)


Когда вы не находитесь в сеансе screen, вы можете передать screen флаг -X для выполнения экранной команды.

Например, команда screen на экране открывает новое окно, при желании с командой для выполнения.

Предполагая, что у вас уже где-то открыт экран:

screen -dr -X screen sleep 20

Обратите внимание, что новое окно закроется после завершения команды (в данном случае - сна). Если вы хотите оставить его открытым, вы потенциально можете сделать что-то вроде этого, в результате чего в новом окне будет набрано 'date \ n':

screen -dr -X screen
screen -dr -X stuff "date
"

Страницы руководства, конечно же, содержат гораздо больше деталей.

person A B    schedule 06.08.2009