Come recuperare una sessione schermo 'persa'?


80

In qualche modo sono riuscito a chiudere una finestra senza che lo notasse, quindi la sessione è ancora contrassegnata come attached. Questo mi impedisce di ricollegarmi a questa sessione. Cosa posso fare?

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.

[aggiornare]

Alla fine ho scoperto che la sessione non è andata persa, ma l'ID della prima sessione è 0. La seconda sessione ha l'ID 1.

Risposte:


108

Prova a staccarlo prima con screen -d. Se non funziona, puoi provare, in ordine crescente di enfasi ,

   -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
le -d -ropzioni insieme costringeranno ad allegare quella sessione.
Tim Kennedy,

Uso sempre in screen -xmodo da poter allegare da più posizioni contemporaneamente. Naturalmente, se si chiude accidentalmente una finestra, sembra che -d -rsia meglio solo mantenere le cose in ordine.
mpontillo,

5
screen -r '1234.somescreensession'

C'è uno schermo su:

1234.somescreensession (allegato)

Non è necessario riprendere lo schermo corrispondente a 1234.somescreensession.

Ecco un modo semplice per riprendere quella sessione dello schermo.

screen -D -r '1234.somescreensession'

4

Ho riscontrato lo stesso problema dopo che la mia connessione ssh si è chiusa inaspettatamente con il messaggio Write Failed: broken pipementre avevo una sessione schermo allegata. Tuttavia, non è stato possibile riavviare la sessione dello schermo utilizzando uno dei comandi sopra. Si noti che utilizzo la seguente versione:

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

Apparentemente, c'era ancora un'istanza di sshdcorsa, che mi ha impedito di staccare e ricollegare la sessione. Dopo aver identificato l' PIDistanza appropriata sshde killaverlo potuto ricollegare screen -r.


Solo per informazione: troverai sicuramente più di un sshddemone, uno corrisponderà al tuo attuale login e un altro appartenente alla screensessione non aggiornata (in effetti, potrebbero esserci più altre in sshdesecuzione appartenenti a più altre screen).


Ho avuto lo stesso problema con una buona telefonata
Dianovich,

3

Alcune volte le schermate multiple sono in esecuzione in background.

Possono essere ripresi da:

screen -r [pid]

Per ottenere lo schermo, esegui prima screen -R, quindi vedrai tutti i PID dello schermo in esecuzione, dopodiché riprendi screen -r [pid].

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.