(SSH) Czy zamykanie terminalu bez „wyjścia” jest niebezpieczne?

24

Stało się to wiele razy.

Gdy SSH jest aktywne, jestem bardzo zmęczony i po prostu zamykam terminal bez exit

Czy robienie tego jest niebezpieczne?

apasajja
źródło
Po prostu naciśnij Ctrl+Ddwa razy zamiast Alt-F4lub Ctrl-Q, to wysyła sygnał wyjścia do twojego aktualnego ssh, a następnie do twojej powłoki, a emulator terminala powinien zamknąć się automatycznie bez powłoki. Problem rozwiązany.
Profpatsch
@Profpatsch: chyba, że ​​używasz IGNOREEOF(in bash), ponieważ używasz również terminalowego multipleksera i masz dość czasami błędnego wpisywania ^a djako ^d, w ten sposób nieumyślnie kończąc pracę.
0xC0000022L

Odpowiedzi:

28

Ani trochę. Po zakończeniu procesu terminalu procesy klienta również umrą, a gdy tak się stanie, połączenie ze zdalnym serwerem zostanie zamknięte przez system operacyjny. Serwer zobaczy połączenie zamknięte i zakończy procesy na serwerze.

Możliwe jest jednak, że na serwerze mogą wystąpić procesy utrzymujące się, jeśli zostaną one uruchomione w tle i zignorują określone sygnały.

Flup
źródło
10

Kiedy zamykamy terminal bezpośrednio, generuje sygnał SIGHUP. Ten sygnał automatycznie / natychmiast zabija wszystkie zadania / procesy w terminalu. Więc nie ma problemu.

Amit Sachdeva
źródło
-1

To może nie być prawda. Jeśli bash działa w pętli, może zignorować SIGHUP i kontynuować sesję. Obecnie próbuję ustalić, dlaczego tak się dzieje.

Również proces zamykania został zauważony tutaj bardzo dobrze, ale najwyraźniej Systemd zmienił niektóre zachowania.

/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs

NeuralSandwich
źródło
Byłoby lepiej, gdybyś najpierw potwierdził swoje roszczenie przed udzieleniem odpowiedzi, zamiast odpowiedzieć „to może nie być prawda”.
Kusalananda
Cóż, wszystko zależy. Wygląda na to, że różni się między: * Początkowymi ustawieniami systemu * Ustawieniami powłoki * Procesami uruchamianymi w terminalu i ich obsługą sygnałów
NeuralSandwich 12.01.18