Назад | Перейти на главную страницу

Закрытие терминала с открытым сеансом SSH

Я закрыл терминал, все еще находясь на удаленном сервере во время сеанса SSH (я не exit перед закрытием терминала).

Может ли это повредить сервер? Какие могут быть последствия?

Это ничего не повредит, пока вы не запускаете что-то, что вносило изменения в систему (обновления, fsck и т. Д.).

Если это был простой сеанс оболочки, ничто не пострадает.

В будущем, если вам потребуется внести изменения в разрушительную систему, вы можете использовать Экран GNU или tmux чтобы продолжить сеанс и иметь возможность подключиться к нему позже.

Если вы были в оболочке и к ней не было подключено никаких фоновых дочерних процессов, проблем возникнуть не должно.

Это нисколько не повредит серверу. Это то же самое, что закрыть окно терминала в OS X или Linux без ввода команды exit. Оболочка обнаруживает отсоединение трубы и выходит самостоятельно. На самом деле это приемлемый способ закрыть оболочку. Многие другие программы также позволяют это, например "Top" и его варианты.

Однако помните, что закрытие ssh в основном завершает ваш сеанс, поэтому, если программа не может быть прервана без ущерба для сервера, это небезопасно. Например, если вы не можете безопасно остановить операцию с помощью CTRL-C, вы не можете выйти.

Кроме того, есть программы, которые не завершаются должным образом при смерти родителя или отключении канала, оставляя процессы в зависании. В этом случае вам просто нужно снова войти в систему и убить их вручную. Обычно такое отключение считается плохой практикой, потому что трудно повторно подключиться к такой программе и снова с ней взаимодействовать. Вместо этого вам нужно найти способ либо отсоединить программу, либо демонизировать ее. Экран - традиционный способ сделать это, но сейчас есть много других вариантов, многие из которых могут улучшить ваш терминал, поэтому выберите тот, который вам нравится.