Przywróć sesję SSH

13

Połączyłem się z moim serwerem za pośrednictwem SSH i utworzyłem proces, ale nagle moje połączenie internetowe zostało rozłączone. Wiem, że proces trwa, ale jak przywrócić poprzednią sesję, aby zobaczyć jej postęp?

Arash Mousavi
źródło

Odpowiedzi:

16

Jak sugerowano powyżej, w przyszłości możesz użyć ekranu, aby temu zapobiec. Krótkie wyjaśnienie dotyczące korzystania z ekranu:

  1. screen -S compiling_stuff
  2. Rób rzeczy tutaj. na przykład ./configure
  3. Jeśli połączenie zostanie z jakiegoś powodu zamknięte, możesz ponownie połączyć się z serwerem i problem screen -r comp
  4. Możesz także odłączyć sesję ekranową, naciskając CTRL+A+D

Powodzenia

Valentin Bajrami
źródło
17

screen najlepiej jest uruchomić polecenie w terminalu, które będzie przechowywane po rozłączeniu się z nim (celowo, ctrl + reklama lub ponieważ połączenie umrze itp.).

JEDNAK MOŻESZ ponownie dołączyć działający proces (np. Powłokę uruchomionej sesji, jeśli nadal działa) do bieżącego terminala (tj. Ponownie podłączyć standardowe wejście, standardowe wyjście, klawiaturę, ale także ustawić nowy terminal jako terminal sterujący dla tego proces) przy użyciu: reptyr

Najlepsze z obu światów: zainstaluj screen, uruchom, a następnie ponownie dołącz ten proces do sesji ekranowych za pomocą reptyr^^

Olivier Dulac
źródło
Oliver, jak można ponownie dołączyć do uruchomionego procesu? Czy mógłbyś podać mi podpowiedź?
łucznik
@archer: wskazówka: podążaj za linkiem ^^ (koniec drugiego akapitu)
Olivier Dulac
@archer: ale ekran jest prostszy: po uruchomieniu na ekranie ctrl + ad: odłącz od ekranu (i idź do domu). następnie ponownie podłącz do screena: „screen -r” (lub bardziej skomplikowany sposób, jeśli coś się zablokuje). Aby rozróżnić wiele sesji ekranowych, nadaj im nazwę.
Olivier Dulac,
7

Nie możesz W przyszłości możesz temu zapobiec za pomocą screenlub tmux, który został stworzony, aby umożliwić ponowne połączenie z sesją po rozłączeniu.

Sven
źródło
5

Pomyślałem, że wspomnę o http://mosh.mit.edu/

Aplikacja zdalnego terminala, która umożliwia roaming, obsługuje przerywane połączenia oraz zapewnia inteligentne lokalne echo i edycję linii klawiszy użytkownika.

Mosh zastępuje SSH. Jest bardziej niezawodny i responsywny, szczególnie w przypadku połączeń Wi-Fi, komórkowych i dalekobieżnych.

Jon Conley
źródło
+1 za heads-upa, nigdy wcześniej nie słyszałem o tym narzędziu!
Olivier Dulac
2

Użyj screenvia ssh, aby ponownie połączyć się później z sesją.

O ile wiem, nie ma możliwości ponownego połączenia się z zamkniętą sesją ssh.

Uwe Plonus
źródło
1

Mogę polecić Byobu :

Byobu jest rozszerzeniem dla terminalowych multiplekserów GNU Screen lub tmux, które można wykorzystać do zapewnienia powiadomienia na ekranie lub statusu, a także zarządzania wieloma okienkami na kartach. Ma on na celu zapewnienie lepszej jakości obsługi sesji terminalowych podczas łączenia się ze zdalnymi serwerami.

Frank Zafka
źródło
1

Poleciłbym użyć tmux :

Możesz przywrócić sesję tmux poprzez tmux attach.

tmux to aplikacja, która może być używana do multipleksowania kilku wirtualnych konsol, umożliwiając użytkownikowi dostęp do wielu oddzielnych sesji terminali w jednym oknie terminala lub sesji terminalu zdalnego. Jest przydatny do obsługi wielu programów z interfejsu wiersza poleceń oraz do oddzielania programów od powłoki uniksowej, która je uruchomiła. [1] Zapewnia wiele takich samych funkcji jak GNU Screen, ale jest rozpowszechniany na licencji BSD.

nieśmiały
źródło