Закрытие/перезапуск сеанса ssh завершает программы, запущенные в этом сеансе?

Закрытие/перезапуск сеанса ssh завершает программы, запущенные в этом сеансе?

Я использую веб-консоль для ssh-подключения к экземпляру aws. Затем я запускаю сеанс xrdp, НО сеанс не проходит через ssh.

Однако, когда я перезапускаю или останавливаю этот сеанс ssh, все, что я запускал в этом сеансе, тоже убивается (например, xrdp), даже если я перевел его в фоновый режим с помощью "&". Я не знаю, является ли это ожидаемым поведением или связано с сеансом ssh через браузер. Идеи по исправлению этого и не убиванию каждой программы в этом сеансе были бы очень признательны :)

решение1

Это ожидаемое поведение, поскольку когда процесс, контролирующий терминал, завершает работу, он отправляет SIGHUPвсем своим дочерним процессам уведомление о том, что терминал повесил трубку. То, как SIGHUPобрабатывается дочерним процессом, зависит только от дочернего процесса. Перевод процесса в фоновый режим не блокирует сигналы, а просто отсоединяет дочерний процесс от терминала. Чтобы заблокироватьсигнал отбоявам следует запустить вашу программу с помощью nohup, например. nohup myprogram &. В большинстве случаев этого должно хватить.

Связанный контент