Как запустить новый процесс в новом окне в существующем сеансе экрана GNU, вне сеанса - PullRequest
4 голосов
/ 06 августа 2009

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

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

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

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

screen [screen options] command param1 param2

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

1 Ответ

3 голосов
/ 06 августа 2009

Когда вы не участвуете в сеансе экрана, вы можете передать на экран флаг -X, чтобы выполнить команду экрана.

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

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

screen -dr -X screen sleep 20

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

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

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

...