Як відновити "загублений" сеанс екрану?


80

Якось мені вдалося закрити вікно екрану, не екрануючи його ", тому сесія все ще позначена як attached. Це заважає мені повторно приєднуватися до цього сеансу. Що я можу зробити?

me@iupr-serv8:~$ screen -r
There are several suitable screens on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:34 PM)    (Attached)
    24658.pts-19.XXX-serv8  (01/05/2012 07:11:38 PM)    (Detached)
    24509.pts-19.XXX-serv8  (01/05/2012 07:10:00 PM)    (Detached)
    18676.pts-5.XXX-serv8   (01/02/2012 06:55:33 PM)    (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
me@XXX-serv8:~$ screen -r 25028
There is a screen on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:33 PM)    (Attached)
There is no screen to be resumed matching 25028.

[оновлення]

Врешті-решт я дізнався, що сеанс не був загублений, але ідентифікатор першого сеансу є 0. Другий сеанс, ніж має ідентифікатор 1.

Відповіді:


108

Спробуйте спочатку від’єднати його screen -d. Якщо це не спрацює, ви можете спробувати, збільшуючи порядок наголосів ,

   -d|-D [pid.tty.host]
        does  not  start screen, but detaches the elsewhere running screen session. It has the
        same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
        to  the  power  detach key.  If no session can be detached, this option is ignored. In
        combination with the -r/-R option more powerful effects can be achieved:

   -d -r   Reattach a session and if necessary detach it first.

   -d -R   Reattach a session and if necessary detach or even create it first.

   -d -RR  Reattach a session and if necessary detach or create it. Use the first  session  if
           more than one session is available.

   -D -r   Reattach a session. If necessary detach and logout remotely first.

   -D -R   Attach  here and now. In detail this means: If a session is running, then reattach.
           If necessary detach and logout remotely first.  If it was not running create it and
           notify the user. This is the author's favorite.

   -D -RR  Attach here and now. Whatever that means, just do it.

11
то -d -rваріанти разом змусить докласти цю сесію.
Тім Кеннеді

Я завжди використовую screen -xтак, що можу приєднатися відразу з кількох місць. Звичайно, якщо ви випадково закриєте вікно, вам здається, що -d -rкраще просто тримати речі в порядку.
mpontillo

5
screen -r '1234.somescreensession'

Є екран на:

1234.somecreensession (додається)

Немає екрана, який слід відновити відповідно до 1234. домоекранного сеансу.

Ось простий спосіб повернути цей сеанс на екрані.

screen -D -r '1234.somescreensession'

4

Таку ж проблему у Write Failed: broken pipeмене виникло після того, як моє ssh-з'єднання несподівано закрилося повідомленням, коли я був приєднаний до екрана. Однак мені не вдалося змусити повторне приєднання екранного сеансу за допомогою будь-якої з команд вище. Зауважте, що я використовую таку версію:

~> screen --version
Screen version 4.00.03 (FAU) 23-Oct-06

Мабуть, все ще був екземпляр sshdзапуску, який утримував мене від роз'єднання та повторного приєднання сеансу. Визначивши PIDвідповідний екземпляр sshdі застосувавши killце, я зміг повторно встановити зв'язок screen -r.


Тільки для інформації: Ви обов'язково знайдете більше одного sshdдемона, один буде відповідати вашому поточному входу, а інший, що належить до чергового screenсеансу (дійсно, може бути кілька інших sshdзапущених файлів, що належать до кількох інших screens).


У мене був той самий випуск хороший дзвінок
діанович

3

Декілька разів кілька екранів працюють у фоновому режимі.

Їх можна відновити:

screen -r [pid]

Щоб отримати екран, спочатку запустіть screen -R, потім ви побачите всі запущені PID екрани, після цього відновіть screen -r [pid].

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.