Восстановить сессию SSH

Я подключился к своему серверу через SSH и создал процесс, но внезапно мое интернет-соединение было отключено. Я знаю, что процесс продолжается, но как восстановить предыдущую сессию, чтобы увидеть ее прогресс?

7 ответов

screen Лучше всего запустить команду в терминале, которая будет сохраняться при отключении от нее (либо намеренно, ctrl+a d, либо потому, что соединение прервано и т. д.).

ОДНАКО вы МОЖЕТЕ повторно присоединить запущенный процесс (например, оболочку вашего запущенного сеанса, если он все еще работает) к вашему текущему терминалу (то есть повторно подключить stdin, stdout, клавиатуру, но также сделать новый терминал управляющим терминалом для этого). процесс) используя: reptyr

Для лучшего из обоих миров: установите screen, запустить его, а затем повторно присоединить этот процесс в сеансах этого экрана с reptyr ^^

Как указано выше, в будущем вы можете использовать экран, чтобы предотвратить такую ​​вещь. Краткое объяснение о том, как использовать экран:

  1. screen -S compiling_stuff
  2. Делай вещи здесь. например ./configure
  3. Если по какой-либо причине соединение закрыто, вы можете подключиться к серверу и выполнить команду screen -r comp
  4. Вы также можете отсоединить сеанс экрана, нажав CTRL+A+D

Удачи

Ты не можешь В будущем вы можете предотвратить что-то подобное с помощью screen или же tmux, который был создан, чтобы разрешить повторное подключение к сеансу после отключения.

Просто подумал, что упомяну http://mosh.mit.edu/

Приложение для удаленного терминала, которое позволяет осуществлять роуминг, поддерживает прерывистое соединение и обеспечивает интеллектуальное локальное эхо и редактирование строк пользовательских нажатий клавиш.

Mosh - это замена SSH. Он более надежный и отзывчивый, особенно по Wi-Fi, сотовой связи и междугородной связи.

Использование screen через ssh для повторного подключения к вашей сессии.

Насколько я знаю, нет способа переподключиться к закрытой ssh-сессии.

Я бы порекомендовал использовать tmux:

Вы можете восстановить сеанс tmux через tmux attach,

tmux - это программное приложение, которое можно использовать для мультиплексирования нескольких виртуальных консолей, позволяя пользователю получить доступ к нескольким отдельным сеансам терминала в одном окне терминала или сеансе удаленного терминала. Это полезно для работы с несколькими программами из интерфейса командной строки и для отделения программ от оболочки Unix, которая запустила программу.[1] Он обеспечивает многие из тех же функций, что и экран GNU, но распространяется под лицензией BSD.

Я могу рекомендовать Byobu:

Byobu - это усовершенствование терминальных мультиплексоров GNU Screen или tmux, которое можно использовать для предоставления на экране уведомлений или статуса, а также управления несколькими окнами с вкладками. Он нацелен на обеспечение лучшего взаимодействия пользователей с терминальными сеансами при подключении к удаленным серверам.

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