(SSH) Опасно ли закрывать терминал без «выхода»?

24

Это случалось много раз.

Пока SSH активен, я так устал и просто закрываю терминал без exit

Опасно ли так поступать?

apasajja
источник
Просто нажмите Ctrl+Dдважды вместо Alt-F4или Ctrl-Q, и это отправит сигнал выхода на ваш текущий ssh, затем на вашу оболочку, и эмулятор терминала должен автоматически закрыться без оболочки. Проблема решена.
Profpatsch
@Profpatsch: если, конечно, вы не используете IGNOREEOF(in bash), потому что вы также используете терминальный мультиплексор и устали иногда ошибаться, ^a dкак ^d, таким образом, выходя непреднамеренно.
0xC0000022L

Ответы:

28

Не за что. Когда завершается процесс терминала, клиентские процессы внутри также умрут, и когда это произойдет, соединение с удаленным сервером будет закрыто операционной системой. Сервер увидит, что соединение закрыто, и завершит процессы на сервере.

Тем не менее, возможно, что у вас могут затянуться процессы на сервере, если они были фоновыми и игнорировать определенные сигналы.

Flup
источник
10

Когда мы закрываем терминал напрямую, он генерирует сигнал SIGHUP. Этот сигнал убивает все задачи / процессы в терминале автоматически / мгновенно. Так что никаких проблем не возникает.

Амит Сачдева
источник
-1

Это не может быть правдой. Если bash выполняет цикл, он может игнорировать SIGHUP и продолжить сеанс. В настоящее время я пытаюсь понять, почему это происходит.

Кроме того, процесс выключения отмечен здесь очень хорошо, но, видимо, Systemd изменил некоторые поведения.

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

NeuralSandwich
источник
Было бы лучше, если бы вы сначала подтвердили свою претензию, прежде чем ответить, а не ответили «это может быть не так».
Кусалананда
Ну, это все зависит. Кажется, что они различаются между: * настройками системы Init * настройками оболочки * процессами, запущенными в терминале, и их обработкой сигналов
NeuralSandwich