Zazwyczaj loguję się do mojego Linux-a z laptopa z systemem Windows za pomocą PuTTY i tam uruchamiam ekran. Kiedy moi korporacyjni władcy postanowili zaktualizować laptopa do systemu Windows 7, moje sesje PuTTY były zawieszone. Zazwyczaj zabijam sesję PuTTY, a następnie albo ponownie dołączam sesję screen (jeśli się odłączyła), albo wydaje „-d -r”, jeśli sesja screen nie odłączyła się, gdy moja sesja PuTTY zamarła.
Mój problem polega na tym, że mam sesję ekranową, która początkowo odmawiała odłączenia. Użyłbym:
screen -d -r 6313.sessionName
ale polecenie po prostu tam wisiało.
Odkryłem, że w katalogu / var / run / screen // znajdowały się „pliki” odpowiadające każdej z moich sesji screen. Zauważyłem, że ten uparty ma 700 uprawnień, podczas gdy inne (które zostały odłączone) mają 600 uprawnień.
Więc zmieniłem uprawnienia do tego pliku na 600. Screen wyświetla teraz jako „odłączony”. Jednak gdy próbuję ponownie do niego dołączyć, polecenie po prostu ponownie się zawiesza.
Za pomocą
ps aux | grep 6313
pokazuje stan procesu jako „Ss”, co oznacza, że jest on w stanie przerywanym. Nie różni się to niczym od innych odłączonych sesji ekranowych, które pokazują ten sam status procesu.
Nie wiem, jak odzyskać tę sesję. Jakieś sugestie?
mysession
zamiast pid.mysession
.
-S
flagi, powinieneś być w stanie odwoływać się tylko do tego mysession
bez potrzeby używania prefiksu pid.
screen -S <name>
, aby każda sesja miała nazwę, którą znam. W ten sposób, gdy chcę się rozłączyć i ponownie połączyć, mogę użyć tej nazwy zamiast PID, takiego jakscreen -r <name>
lubscreen -dr <name>