Проводя аналогию с серверами, на физическом сервере могут быть размещены несколько виртуальных. Точно также и с консолью, внутри одной ssh сессии можно запустить несколько виртуальных консолей. В каждой из них можно запустить свои команды и переключаться между каждой, наблюдая текущее состояние.
Для чего это нужно и какие плюсы:
- При закрытии обычной консоли и одновременном выполнении команды - она будет завершена, что плохо, особенно когда выполнение команды занимает длительное время. При закрытии терминала с запущенно виртуальной консолью, запущенная команда продолжит работу и вы всегда можете переподключиться.
- Возможность запуска нескольких виртуальных консолей и переключение между ними, используя уникальный ID.
- При выполнении обновлений и потери связи с сервером, команда завершится некорректно, что может вызвать нарушение в работе служб. В виртуальной консоли при потере связи - все продолжит выполняться и Вы можете в любой момент переподключиться.
В качестве виртуальной консоли мы будем использовать приложение screen и операционную систему Linux Debian 12.
1. Установка
apt update
apt install screen
2. Использование
2.1 Запустите screen, чтобы попасть в виртуальную консоль
screen
Теперь вы находитесь в виртуальном терминале, вы можете в нем выполнять все те же команды, что и в обычном.
2.2 Отсоединение
Что выйти из виртуальной консоли и при этом оставить ее активной используйте сочетание клавиш:
Ctrl+a+d
[detached from 150087.pts-0.srv]
ID для повторного подключения - 150087
2.3 Закрытие виртуальной консоли
exit
3. Основные команды
3.1 Отсоединение
Помимо горячих клавиш, можно использовать команду:
screen -d
[detached from 150087.pts-0.srv]
3.2 Список запущенных консолей
screen -ls
3.3 Переподключение к консоли
Используйте номерной id, для подключения к определенной консоли
screen -r 150087
Использование виртуальной консоли особенно удобно для команд, требующих длительного выполнения. Теперь вы будете уверены, что Ваша команда завершится корректно и узнаете ее итоговый вывод даже при потере связи с основной консолью.