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.
Kiedy zamykamy terminal bezpośrednio, generuje sygnał SIGHUP. Ten sygnał automatycznie / natychmiast zabija wszystkie zadania / procesy w terminalu. Więc nie ma problemu.
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
Ctrl+D
dwa razy zamiastAlt-F4
lubCtrl-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.IGNOREEOF
(inbash
), ponieważ używasz również terminalowego multipleksera i masz dość czasami błędnego wpisywania^a d
jako^d
, w ten sposób nieumyślnie kończąc pracę.Odpowiedzi:
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.
źródło
Kiedy zamykamy terminal bezpośrednio, generuje sygnał SIGHUP. Ten sygnał automatycznie / natychmiast zabija wszystkie zadania / procesy w terminalu. Więc nie ma problemu.
źródło
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
źródło