Я подключился к своему серверу через SSH и создал процесс, но внезапно мое интернет-соединение прервалось. Я знаю, что процесс продолжается, но как восстановить предыдущий сеанс, чтобы увидеть его ход?
screen
лучше всего запускать команду в терминале, которая будет сохранена при отключении от него (либо специально, ctrl + a d, либо из-за разрыва соединения и т. д.).
ТЕМ НЕ МЕНИЕ вы МОЖЕТЕ повторно подключить запущенный процесс (например: оболочка вашего текущего сеанса, если она все еще работает) к вашему текущему терминалу (то есть повторно подключите stdin, stdout, keyboard, но также сделайте новый терминал управляющим терминалом для этого процесса), используя: рептирь
Лучшее из обоих миров: установите screen
, запустите его, а затем повторно подключите этот процесс в сеансах экрана с помощью reptyr
^^
Как было предложено выше, в будущем вы можете использовать screen для предотвращения подобных вещей. Краткое объяснение того, как использовать экран:
screen -S compiling_stuff
./configure
screen -r comp
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.