Просто нажмите Ctrl+Dдважды вместо Alt-F4или Ctrl-Q, и это отправит сигнал выхода на ваш текущий ssh, затем на вашу оболочку, и эмулятор терминала должен автоматически закрыться без оболочки. Проблема решена.
Profpatsch
@Profpatsch: если, конечно, вы не используете IGNOREEOF(in bash), потому что вы также используете терминальный мультиплексор и устали иногда ошибаться, ^a dкак ^d, таким образом, выходя непреднамеренно.
0xC0000022L
Ответы:
28
Не за что. Когда завершается процесс терминала, клиентские процессы внутри также умрут, и когда это произойдет, соединение с удаленным сервером будет закрыто операционной системой. Сервер увидит, что соединение закрыто, и завершит процессы на сервере.
Тем не менее, возможно, что у вас могут затянуться процессы на сервере, если они были фоновыми и игнорировать определенные сигналы.
Когда мы закрываем терминал напрямую, он генерирует сигнал SIGHUP. Этот сигнал убивает все задачи / процессы в терминале автоматически / мгновенно. Так что никаких проблем не возникает.
Это не может быть правдой. Если bash выполняет цикл, он может игнорировать SIGHUP и продолжить сеанс. В настоящее время я пытаюсь понять, почему это происходит.
Кроме того, процесс выключения отмечен здесь очень хорошо, но, видимо, Systemd изменил некоторые поведения.
Было бы лучше, если бы вы сначала подтвердили свою претензию, прежде чем ответить, а не ответили «это может быть не так».
Кусалананда
Ну, это все зависит. Кажется, что они различаются между: * настройками системы Init * настройками оболочки * процессами, запущенными в терминале, и их обработкой сигналов
Ctrl+D
дважды вместоAlt-F4
илиCtrl-Q
, и это отправит сигнал выхода на ваш текущий ssh, затем на вашу оболочку, и эмулятор терминала должен автоматически закрыться без оболочки. Проблема решена.IGNOREEOF
(inbash
), потому что вы также используете терминальный мультиплексор и устали иногда ошибаться,^a d
как^d
, таким образом, выходя непреднамеренно.Ответы:
Не за что. Когда завершается процесс терминала, клиентские процессы внутри также умрут, и когда это произойдет, соединение с удаленным сервером будет закрыто операционной системой. Сервер увидит, что соединение закрыто, и завершит процессы на сервере.
Тем не менее, возможно, что у вас могут затянуться процессы на сервере, если они были фоновыми и игнорировать определенные сигналы.
источник
Когда мы закрываем терминал напрямую, он генерирует сигнал SIGHUP. Этот сигнал убивает все задачи / процессы в терминале автоматически / мгновенно. Так что никаких проблем не возникает.
источник
Это не может быть правдой. Если bash выполняет цикл, он может игнорировать SIGHUP и продолжить сеанс. В настоящее время я пытаюсь понять, почему это происходит.
Кроме того, процесс выключения отмечен здесь очень хорошо, но, видимо, Systemd изменил некоторые поведения.
/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs
источник