Повторное подключение к существующему сеансу экрана

У меня есть программа, работающая под экраном. На самом деле, когда я отсоединяюсь от сеанса и проверяю netstat, я вижу, что программа все еще работает (это то, что я хочу):

udp        0      0 127.0.0.1:1720          0.0.0.0:*                           3759/ruby       

Теперь я хочу снова подключиться к сеансу, выполняющему этот процесс , Поэтому я запускаю новый терминал и набираю screen -r

$ screen -r
There are several suitable screens on:
    5169.pts-2.teamviggy    (05/31/2013 09:30:28 PM)    (Detached)
    4872.pts-2.teamviggy    (05/31/2013 09:25:30 PM)    (Detached)
    4572.pts-2.teamviggy    (05/31/2013 09:07:17 PM)    (Detached)
    4073.pts-2.teamviggy    (05/31/2013 08:50:54 PM)    (Detached)
    3600.pts-2.teamviggy    (05/31/2013 08:40:14 PM)    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

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

Теперь один из документы, на которые я натолкнулся, сказал:

«Когда вы используете окно, введите Ca A., чтобы дать ему имя. Это имя будет использоваться в списке окон и поможет вам запомнить, что вы делая это в каждом окне, когда вы начинаете использовать много окон ».

Дело в том, что когда я нахожусь на новом сеансе экрана, я пытаюсь нажать кнопку управления + a, и ничего не происходит.

1
задан 27 June 2017 в 08:22

4 ответа

У меня был случай, когда screen -r не удалось снова подключиться. Добавив флаг -d, чтобы он выглядел так:

screen -d -r

работал для меня. Он отделил предыдущий экран и позволил мне снова подключиться. Дополнительную информацию см. На странице Man.

12
ответ дан 24 May 2018 в 21:33

Легкий способ просто подключиться к произвольному экрану с помощью

screen -r

Затем, как только вы запускаете экран, вы можете получить список всех активных экранов, нажав Ctrl-A " (т. е. A, за которым следует двойная кавычка). Затем вы можете просто выбрать активные экраны по одному и посмотреть, что они запускают. Именование экранов, конечно, облегчит определение правильного.

Только мои два цента

9
ответ дан 24 May 2018 в 21:33

Я использую следующую комбо, где мне нужно работать на нескольких машинах в нескольких кластерах:

screen -S clusterX

Это создает новый сеанс экрана, где я могу создать среду.

screen -dRR clusterX

Это то, что я потом использую для повторного подключения к этому сеансу экрана. Отличные биты состоят в том, что если сеанс подключен в другом месте, он отделяет этот другой экран. Более того, если нет какой-либо сессии по какой-то причудливой причине, например, кто-то перезагрузил мой сервер, не зная меня, он создает его. В заключение. если существует несколько сеансов, он использует первый.

Много kudos https://support.dvsus.com/hc/en-us/articles/212925186-Linux-GNU-Screen-instructions для этого немного назад.

0
ответ дан 24 May 2018 в 21:33

Выход screen -list отформатирован как pid.tty.host. Pids можно использовать для получения первого дочернего процесса с помощью pstree:

screen -list|cut -f1 -d'.'|cut -f2|xargs -n 1 pstree -p|grep "^screen"

Вы получите список, подобный этому

screen(5169)---zsh(5170)---less(15268)
screen(4872)---zsh(4873)-+-cat(11364)
...
0
ответ дан 24 May 2018 в 21:33

Другие вопросы по тегам:

Похожие вопросы: