Назад | Перейти на главную страницу

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

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

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

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

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

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

  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-сессии нет.

Я могу рекомендовать Бёбу:

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

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

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

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