it-swarm-eu.dev

Jak obnovit „ztracenou“ relaci obrazovky?

Nějak se mi podařilo zavřít okno obrazovky, aniž by si to „všiml“ obrazovky, takže relace je stále označena jako attached. To mi brání v opětovném připojení k této relaci. Co můžu dělat?

[email protected]:~$ 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.
[email protected]:~$ 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.

[aktualizace]

Nakonec jsem zjistil, že relace nebyla ztracena, ale ID první relace je 0. Druhá relace, než má ID 1.

81
Framester

Zkuste ji nejprve odpojit pomocí screen -d. Pokud to nefunguje, můžete zkusit, ve vzestupném pořadí důraz,

   -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.
110
angus
screen -r '1234.somescreensession'

K dispozici je obrazovka:

1234.somescreensession (Attached)

Neexistuje žádná obrazovka pro pokračování odpovídající 1234.somescreensession.

Zde je jednoduchý způsob, jak vzít zpět tuto relaci obrazovky.

screen -D -r '1234.somescreensession'
6
bresti

Někdy běží více obrazovek na pozadí.

Lze je obnovit:

screen -r [pid]

Chcete-li získat obrazovku, nejprve spusťte screen -R, pak uvidíte všechny běžící PID obrazovky, poté pokračujte podle screen -r [pid].

4
Shiv Singh

Stejný problém jsem zaznamenal poté, co se moje spojení ssh neočekávaně ukončilo zprávou Write Failed: broken pipe, zatímco jsem měl připojenou relaci obrazovky. Nemohl jsem však dostat obrazovku relace znovu připojit pomocí některého z výše uvedených příkazů. Všimněte si, že používám následující verzi:

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

Očividně stále existovala instance sshd, která mi bránila v odpojení a opětovném připojení relace. Po identifikaci PID příslušné instance sshd a killing to bylo možné znovu připojit s screen -r.


Jen pro informaci: Určitě najdete více než jeden sshd démon, jeden bude odpovídat vašemu aktuálnímu přihlášení a další patřící k zastaralé screen relaci (opravdu by mohlo být více dalších sshds běží patřící do několika dalších screens).

4
el_tenedor