Запустить команду в новом окне - PullRequest
0 голосов
/ 21 февраля 2020

У меня небольшая проблема. Я хочу создать новый экран и после этого автоматически запустить echo 'You are using screen'. Я пробовал это, но не работает:

[root@test ~]# screen -S screen_name -X echo 'You are using screen'
No screen session found.

У вас есть какое-нибудь решение для этого?

1 Ответ

0 голосов
/ 22 февраля 2020

Из сообщения об ошибке видно, что вы не создали сеанс экрана с именем "screen_name" до того, как попытались отправить команду echo в этот сеанс. Попробуйте выполнить следующую последовательность команд.

Сначала создайте сеанс экрана с именем "screen_name". Для удобства также укажите параметры -d -m для запуска этого сеанса в отдельном режиме, чтобы можно было сразу же приступить к выполнению большего количества команд без необходимости отсоединения от нового сеанса.

[root] screen -S screen_name -d -m

Проверьте, что новый сеанс действительно существует:

[root] screen -ls
There is a screen on:
    83216.screen_name   (Detached)
1 Socket in /var/folders/k4/fdf21jn93jv5n3h5b1w9mpkm0000gp/T/.screen.

Отправьте свою команду в сеанс:

[root] screen -S screen_name -X echo 'You are using screen'

Когда вы сделаете это, вы не увидите ничего интересного, потому что сеанс не привязан к терминал, но вы заметите, что вы не получаете сообщение об ошибке. Вы также не увидите результат этой команды echo при последующем подключении к сеансу, поскольку echo только выскакивает сообщение строки состояния в сеансе, и эта строка состояния будет отклоняться при подключении к сеансу. сеанс.

Если вы хотите сделать что-то, что будет видно при подключении, попробуйте что-то вроде:

[root] screen -S screen_name -X exec cal 2 2020

Затем, когда вы присоединитесь к сеансу, выполнив:

[root] screen -r screen_name

вы увидите результат команды cal (распечатка календаря на февраль 2020 года) в сеансе экрана.

...