Почему процесс / задача, запущенная на виртуальной машине, останавливается, когда соединение SSH, используемое для создания процесса, было разорвано?

У меня виртуальная машина работает на каком-то удаленном хосте. Я подключаюсь к нему с настольного компьютера через SSH через putty. Я запускаю процесс сборки на этой виртуальной машине.

Теперь, если я закрываю сессию SSH с замазкой, почему процесс сборки останавливается, а образ не создается?

Однако, если я раскручиваю экземпляр VNC-сервера на виртуальной машине и подключаюсь к нему через программу просмотра VNC с моего настольного компьютера. Теперь я могу получить доступ к среде графического интерфейса виртуальной машины. Теперь я запускаю терминал. И начать процесс сборки.

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

Чем они отличаются в каждом сценарии?

1 ответ

Решение

Почему процесс убит? Когда вы подключаетесь, ваш bash по умолчанию запускается. Теперь, когда вы запускаете процесс, он является подпроцессом bash. Если соединение закрывается, bash и все его подпроцессы завершаются.


Решение: использовать screen, Бежать screen и начать процесс сборки. Если у вас отключение, все, что запускается после экрана, продолжится. Если вы переподключитесь по ssh сейчас и запустите screen -RD, вы вернетесь к своей сессии и увидите процесс.


VNC передает только экран и управление мышью / клавиатурой в вашу систему. Все процессы работают так, как если бы вы сидели перед этой системой.

Другие вопросы по тегам