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
.
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.
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'
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]
.
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 kill
ing 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 sshd
s běží patřící do několika dalších screen
s).