W jakiś sposób udało mi się zamknąć okno ekranu, nie zauważając go, więc sesja nadal jest oznaczana jako attached
. To uniemożliwia mi ponowne dołączenie do tej sesji. Co mogę zrobić?
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.
[aktualizacja]
W końcu dowiedziałem się, że sesja nie została utracona, ale identyfikator pierwszej sesji to 0
. Druga sesja niż ma identyfikator 1
.
terminal
gnu-screen
Framester
źródło
źródło
-d -r
opcje razem zmusi dołączyć tej sesji.screen -x
aby móc dołączać z wielu lokalizacji jednocześnie. Oczywiście, jeśli przypadkowo zamkniesz okno, wydaje się, że-d -r
lepiej jest po prostu utrzymać porządek.Jest ekran na:
1234.somescreensession (Attached)
Brak ekranu do wznowienia pasującego do 1234.somescreensession.
Oto prosty sposób na przywrócenie tej sesji ekranowej.
źródło
Ten sam problem wystąpił po nieoczekiwanym zamknięciu połączenia ssh z komunikatem,
Write Failed: broken pipe
gdy miałem dołączoną sesję ekranową. Nie udało mi się jednak przywrócić sesji ekranowej przy użyciu żadnego z powyższych poleceń. Pamiętaj, że używam następującej wersji:Najwyraźniej wciąż istniała instancja
sshd
, która powstrzymywała mnie od odłączania i ponownego dołączania sesji. Po zidentyfikowaniuPID
odpowiedniego wystąpieniasshd
ikill
zainicjowaniu go udało mi się ponownie podłączyćscreen -r
.Tylko dla informacji: na pewno znajdziesz więcej niż jednego
sshd
demona, jeden będzie odpowiadał twojemu bieżącemu loginowi, a drugi przynależy do przestarzałejscreen
sesji (w rzeczywistości może być wiele innychsshd
uruchomionych należących do wielu innychscreen
).źródło
Czasami wiele ekranów działa w tle.
Można je wznowić poprzez:
Aby uzyskać ekran, najpierw uruchom
screen -R
, a następnie zobaczysz wszystkie działające identyfikatory PID ekranu, a następnie wznowione przezscreen -r [pid]
.źródło