Jaka jest różnica między ~. (kropka tyldy) i „exit” przy wychodzeniu z połączenia SSH


12

Ilekroć mam połączenie X11 w tle w sesji SSH, muszę używać ~.i nie exitwychodzić z sesji ssh.

Jaka jest tutaj różnica? Czy zawsze mogę użyć sekwencji ucieczki ~.?

Odpowiedzi:


7

exitkaże twojej bieżącej powłoce zakończyć. Ponieważ (gdy nie ma połączenia tunelowanego, np. X11, aktywne) oznacza to, że proces wywołany przez sshd po stronie serwera zakończył się, SSH rozłącza się.

~. to „magiczna” sekwencja ucieczki, którą SSH przechwytuje i natychmiast rozłącza (w tym tunel X11).

Więc nie, nie można ich zamieniać. Jeśli chcesz, aby zdalna powłoka (lub jakikolwiek program działa zdalnie) z wdziękiem zakończyła działanie, powinieneś ją odpowiednio zakończyć.


5

Jest to dobrze opisane już w innej odpowiedzi, ale dodałbym trochę tła:

Pojedyncze połączenie SSH może dziś zawierać kilka sesji (twoje powłoki, polecenia), kanały przesyłania TCP i kanały przesyłania X11 . I pojawia się różnica:

  • Zapisywanie exit(lub Ctrl+ D) powoduje zniszczenie kanału sesji , ale jeśli są aktywne, niektóre kanały X11 (na przykład gvimpozostawiają kilka połączeń z X serwerem obsługującym schowek i tytuł , który nie jest zamykany exit). Pisanie exitsprawi, że ta aplikacja X11 będzie działać, a terminal „zawiesi się”, dopóki nie zostanie zamknięty.

  • Zapisywanie ~.zrywa całe połączenie . Możesz zauważyć, że jeśli uruchomisz jakąś aplikację X11, która jest również zamykana podczas pisania ~..

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.