Выключение ПК без уничтожения сессий SSH


14

У меня есть тяжелые, длинные процессы, запущенные на удаленных машинах Linux. Я использую свой ноутбук для SSH к этим машинам и запускаю процессы с моего дивана.

НО, когда я хочу выключить свой ноутбук, у меня проблемы, так как удаленные процессы убиты.

Я провел исследование и обнаружил, что «экран» - отличное решение для меня! (Пока я не выключаю свой ноутбук). Разве нет способа «сохранить» «экранные» сеансы, чтобы я мог закрыть его, а затем повторно присоединить к сеансу?


У вас запущен экран в удаленных системах Linux?
— Сэм Миллер

Можно ли фоновые процессы?
— ennuikiller

Ответы:


32

Похоже, вы запускаете сеанс экрана на своем ноутбуке. Затем перейдите из этого сеанса на удаленный хост (ы). Выключение ноутбука уничтожит процесс локального экрана, который, в свою очередь, убьет сеанс ssh.

То, что вы хотите сделать, это ssh с вашего ноутбука на удаленный хост (ы). Затем запустите сеанс экрана на удаленном хосте. Когда ваш ноутбук выключен, сеанс ssh прекратится, но сеанс удаленного экрана сохранится.

При следующем входе в удаленную систему вы можете повторно присоединиться к сеансу экрана с помощью «screen -r» или, если у вас есть несколько сеансов экрана, «screen -r <pid>».

Примечание: если вы забыли отключиться от сеанса удаленного экрана до того, как ssh будет уничтожен, сеанс экрана может подумать, что он все еще подключен. В этом случае вам нужно будет выполнить «screen -dr <pid>», чтобы сначала отключить сеанс.


4
Кстати, если я правильно помню, нажатие, Ctrl+Aа затем, Dкогда вы в screen, отсоединит сеанс экрана.
— Дэвид Z

@ Давид это правильно, вы также можете просто закрыть свой терминал или сессию ssh, и экран останется открытым. "screen -raAd" будет присоединен.
— Крис

Как я могу начать сеанс экрана на удаленном хосте?
— глупость

15

Вы можете использовать, nohupчтобы запустить процесс, который продолжит работать после выхода из системы. Это может быть то, что вы ищете.


Для уже запущенного процесса вы можете выполнить ^ Z, а затем disownсоздать то, что я считаю эквивалентным эффектом. disownэто башизм, который может или не может быть доступен на других оболочках.
— интуитивно

+1 за nohup. Проблема в ^Zтом, что он приостанавливает процесс. Там нет никакого способа, чтобы фоновый процесс, но держать его без сбоев.
— детально

6

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


Не уверен, что очевидно, что сеанс экрана, от которого отсоединяется, должен быть на удаленном сервере.
— интуитивно


2

Используйте nohup. Еще один вариант использования VNC. Создайте сеанс VNC на сервере. Затем подключайтесь к нему всякий раз, когда вы работаете. (Более полезно, когда длинный процесс использует некоторый GUI - например, IDE)


0

Если на этих серверах есть удаленный KVM ILO / DRAC / Other и т. Д., Вы можете подключиться к консоли и там взаимодействовать. Поскольку инициируемые сеансы в основном локальные, отключение соединения с вашего ноутбука ничего не изменит.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.