Zamykanie komputera bez zabijania sesji SSH

14

Mam kilka ciężkich, długich procesów działających na zdalnych komputerach z systemem Linux. Używam laptopa do SSH na tych komputerach i uruchamiam procesy z mojej kanapy.

ALE, kiedy chcę wyłączyć laptopa, mam kłopoty, ponieważ zdalne procesy są zabijane.

Przeprowadziłem badania i odkryłem, że „ekran” to dla mnie świetne rozwiązanie! (Tak długo, jak nie wyłączam laptopa). Czy nie ma sposobu, aby „utrwalić” sesje „ekranowe”, abym mógł je zamknąć, a następnie ponownie dołączyć do sesji?

Sathyajith Bhat
źródło
Czy używasz ekranu na zdalnych systemach Linux?
Sam Miller,
czy możliwe jest tło procesów?
ennuikiller

Odpowiedzi:

32

Wygląda na to, że prowadzisz sesję ekranu na swoim laptopie. Następnie sshing z tej sesji ekranowej do zdalnego hosta (hostów). Wyłączenie laptopa zabije proces lokalnego ekranu, co z kolei zabije sesję ssh.

Co chcesz zrobić, to ssh z laptopa do zdalnego hosta (hostów). Następnie rozpocznij sesję ekranową na zdalnym hoście. Gdy laptop zostanie wyłączony, sesja ssh umrze, ale sesja zdalnego ekranu będzie trwała.

Następnym razem, gdy zalogujesz się do systemu zdalnego, możesz ponownie dołączyć do sesji ekranowej za pomocą „screen -r” lub jeśli masz wiele sesji ekranowych „screen -r <pid>”.

Uwaga: jeśli zapomniałeś odłączyć się od zdalnej sesji ekranowej przed zabiciem ssh, sesja ekranowa może myśleć, że nadal jest dołączona. W takim przypadku musisz najpierw wykonać polecenie screen -dr <pid>, aby najpierw odłączyć sesję.

erichui
źródło
4
Nawiasem mówiąc, jeśli dobrze pamiętam, naciśnięcie Ctrl+Anastępuje D, gdy jesteś w screenbędzie odłączyć sesję ekranu.
David Z
@David jest to poprawne, możesz także po prostu zamknąć terminal lub sesję ssh, a ekran pozostanie otwarty. „screen -raAd” przyłączy się ponownie.
Chris,
Jak mogę rozpocząć sesję ekranową na zdalnym hoście?
głupota
15

Możesz użyć nohupdo uruchomienia procesu, który będzie kontynuowany po wylogowaniu z komputera. To może być to, czego szukasz.

John Smith
źródło
W przypadku już uruchomionego procesu możesz wykonać ^ Z, a następnie disownstworzyć efekt, który moim zdaniem jest równoważny. disownto bashizm, który może, ale nie musi być dostępny na innych powłokach.
intuicyjnie,
+1 dla nohup. Problem ^Zpolega na tym, że wstrzymuje proces. Nie ma sposobu na tło proces, ale utrzymać go bez czkawki.
detly
6

Jeśli odłączysz sesję zdalną screen, możesz bezpiecznie zamknąć laptopa.

chryss
źródło
Nie jestem pewien, czy jest oczywiste, że odłączana sesja ekranowa musi znajdować się na zdalnym serwerze.
intuicyjnie,
6

Punktem ekranu jest uruchomienie go na serwerze i odłączenie za pomocą CTRL+ A+ D.

Peter Mortensen
źródło
2

Użyj nohup. Kolejny wybór, aby użyć VNC. Utwórz sesję VNC na serwerze. Następnie podłącz się do niego za każdym razem, gdy będziesz pracować. (Bardziej przydatne, gdy długi proces używa GUI - na przykład IDE)

Jayan
źródło
0

Jeśli te serwery mają ILO / DRAC / Inny zdalny KVM itp., Możesz być w stanie połączyć się z konsolą i tam wchodzić w interakcje. Ponieważ zainicjowane sesje są zasadniczo lokalne, porzucenie połączenia z laptopa nic nie da.

DHayes
źródło