Яка різниця між ~. (tilde dot) та "exit" при виході з SSH-з'єднання


12

Щоразу, коли у мене є фонове підключення X11 у сеансі SSH, я повинен використовувати ~.та не exitвиходити з сеансу ssh.

Яка тут різниця? Чи можна завжди використовувати послідовність втечі ~.?

Відповіді:


7

exitповідомляє вашій поточній оболонці вийти. Оскільки (коли немає тунельного з'єднання, наприклад, X11, активне), це означає, що процес, що викликає sshd на стороні сервера, SSH потім відключається.

~. - це "магічна" послідовність втечі, яку SSH захоплює та негайно відключає (включаючи тунель X11).

Отже, ні, вони не взаємозамінні. Якщо ви хочете, щоб ваша віддалена оболонка (або будь-яка програма, запущена віддалено) граціозно вийшла, слід її закінчити відповідно.


5

Це добре описано вже в іншій відповіді, але я б додав деякі відомості:

Одне з'єднання SSH сьогодні може містити кілька сеансів (ваші оболонки, команда), канали переадресації TCP та канали переадресації X11 . І ось різниця:

  • Запис exit(або Ctrl+ D) вириває канал сеансу , але якщо є активні деякі канали X11 (наприклад, gvimзалишає декілька з'єднань з обробним буфером обміну та заголовком X сервера , який не закритий exit). Запис exitзалишить цю програму X11 запущеною, і ваш термінал буде «висіти», поки не буде закритий.

  • Запис ~.сліз весь зв’язок . Ви можете помітити, якщо ви запускаєте якусь програму X11, що вона також закрита під час написання ~..

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.