- Как использовать screen в Linux
- Введение
- Установить Linux GNU Screen
- Установите Linux Screen в Ubuntu и Debian
- Установите Linux Screen на CentOS и Fedora
- Экран запуска Linux
- Начало именованного сеанса
- Работа с Linux Screen Windows
- Отключиться от сеанса экрана Linux
- Повторное подключение к экрану Linux
- Настроить экран Linux
- Базовое использование экрана Linux
- Выводы
- Использование утилиты screen в Linux
- Установка утилиты screen в Linux
- Запуск и использование screen, работа с сессиями, фоновые процессы
- Сценарии использования screen в Linux
Как использовать screen в Linux
Вы когда-нибудь сталкивались с ситуацией, когда вы выполняете длительную задачу на удаленном компьютере, и внезапно ваше соединение разрывается, сеанс SSH завершается, и ваша работа теряется. Что ж, в какой-то момент это случилось со всеми нами, не так ли? К счастью, есть утилита screen которая позволяет нам возобновлять сеансы.
Введение
Экран или GNU Screen — это терминальный мультиплексор. Другими словами, это означает, что вы можете запустить сеанс экрана, а затем открыть любое количество окон (виртуальных терминалов) внутри этого сеанса. Процессы, запущенные в Screen, будут продолжать работать, если их окно не отображается, даже если вы отключитесь.
Установить Linux GNU Screen
В настоящее время пакет screen предустановлен в большинстве дистрибутивов Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:
Screen version 4.06.02 (GNU) 23-Oct-17
Если в вашей системе не установлен screen, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Linux Screen в Ubuntu и Debian
sudo apt update
sudo apt install screen
Установите Linux Screen на CentOS и Fedora
Экран запуска Linux
Чтобы начать сеанс экрана, просто введите screen в консоли:
Это откроет сеанс экрана, создаст новое окно и запустит оболочку в этом окне.
Теперь, когда вы открыли сеанс экрана, вы можете получить список команд, набрав:
Начало именованного сеанса
Именованные сеансы полезны, когда вы запускаете несколько сеансов экрана. Чтобы создать именованный сеанс, запустите экранную команду со следующими аргументами:
Всегда рекомендуется выбирать описательное имя сеанса.
Работа с Linux Screen Windows
Когда вы запускаете новый сеанс экрана, он создает одно окно с оболочкой в нем.
У вас может быть несколько окон внутри сеанса Screen.
Чтобы создать новое окно с типом оболочки Ctrl+a c , ему будет присвоен первый доступный номер из диапазона 0. 9 .
Ниже приведены некоторые наиболее распространенные команды для управления экраном Linux в Windows:
- Ctrl+a c Создать новое окно (с оболочкой)
- Ctrl+a » Показать все окно
- Ctrl+a 0 Перейти в окно 0 (по номеру)
- Ctrl+a A Переименовать текущее окно
- Ctrl+a S Разделить текущую область по горизонтали на две области
- Ctrl+a | Разделить текущий регион по вертикали на два региона
- Ctrl+a tab Переключить фокус ввода на следующую область
- Ctrl+a Ctrl+a Переключение между текущей и предыдущей областью
- Ctrl+a Q Закрыть все регионы, кроме текущего
- Ctrl+a X Закрыть текущую область
Отключиться от сеанса экрана Linux
Вы можете отключиться от сеанса экрана в любое время, набрав:
Программа, запущенная в сеансе экрана, продолжит работу после того, как вы отключитесь от сеанса.
Повторное подключение к экрану Linux
Чтобы возобновить сеанс экрана, используйте следующую команду:
Если на вашем компьютере запущено несколько сеансов экрана, вам нужно будет добавить идентификатор сеанса экрана после переключателя r .
Чтобы найти идентификатор сеанса, укажите текущие сеансы запущенного экрана с помощью:
There are screens on: 10835.pts-0.linuxize-desktop (Detached) 10366.pts-0.linuxize-desktop (Detached) 2 Sockets in /run/screens/S-linuxize.
Если вы хотите восстановить экран 10835.pts-0, введите следующую команду:
Настроить экран Linux
Когда screen запускается, он считывает свои параметры конфигурации из /etc/screenrc и ~/.screenrc если файл присутствует. Мы можем изменить настройки экрана по умолчанию в соответствии с нашими предпочтениями, используя файл .screenrc .
Вот пример конфигурации ~/.screenrc с настроенной строкой состояния и несколькими дополнительными параметрами:
# Turn off the welcome message startup_message off # Disable visual bell vbell off # Set scrollback buffer to 10000 defscrollback 10000 # Customize the status line hardstatus alwayslastline hardstatus string '%= kG>[ %%H %][%= %%?%-Lw%?%(%%n*%f%t%?(%u)%?%)%%?%+Lw%?%?%= %][% %m-%d %%c %]'
Базовое использование экрана Linux
Ниже приведены основные шаги для начала работы с экраном:
- В командной строке введите screen .
- Запускаем желаемую программу.
- Используйте последовательность Ctrl-a + Ctrl-d чтобы отключиться от сеанса экрана.
- Повторно подключитесь к сеансу экрана, набрав screen -r .
Выводы
В этом руководстве вы узнали, как использовать Gnu Screen. Теперь вы можете начать использовать утилиту Screen и создавать несколько окон экрана из одного сеанса, перемещаться между окнами, отсоединять и возобновлять сеансы экрана и персонализировать свой экранный терминал с помощью файла .screenrc .
Больше информации о Gnu Screen можно найти на странице руководства пользователя Screen .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Использование утилиты screen в Linux
05.02.2021
VyacheslavK
CentOS, Linux, Ubuntu
комментария 3
Screen – консольная утилита позволяющая в действующей SSH сессии открывать неограниченное количество независимых виртуальных терминалов (окон). Процессы, выполняемые внутри screen, не прерываются даже при обрыве сессии с сервером.
Утилита screen является отличным инструментом как для новичков в Linux, так и для опытных системных администраторов. Внутри сессии screen можно запускать процессы, которые требуют длительное время на выполнения. В это же время вы всегда можете просто закрыть консоль и запущенный процесс будет выполняться в фоне.
Установка утилиты screen в Linux
Утилита screen по умолчанию установлена в ряде дистрибутивов Linux. В CentOS 8 утилита по умолчанию не установлена, придется доставлять вручную с помощью пакетного менеджера:
# dnf install epel-release -y — устанавливаем репозиторий EPEL, где размещается данная утилита
# dnf install screen -y – устанавливаем утилиту
На Debian/Ubuntu установка выполняется так:
Чтобы посмотреть установленную версию screen, введите команду:
Screen version 4.06.02 (GNU) 23-Oct-17
Запуск и использование screen, работа с сессиями, фоновые процессы
Запустите сессию screen одной командой:
Чтобы вывести справку по использованию screen, нажмите комбинацию ctrl + a и после этого введите знак вопроса (?).
Вернуться к сессии screen можно через кнопку пробел (space)
Чтобы полностью закрыть терминал screen, нажмите сочетание клавиш ctrl +d:
Чтобы просто выйти из сессии screen, не закрывая ее полностью, используйтекомбинацию:
Если у вас открыта одна сессия screen, вернуться к ней можно с помощью команды:
Проверить список запущенных сессий screen:
Если сессий несколько, можно получить ID сессии и подключиться к нужной:
Если вы запускаете несколько сессий screen, то удобнее будет называть их по имени процесса, который там выполняется. Например:
Теперь, если у вас несколько разных сессии именованных screen и вы легко разберетесь в какую из нах вам нужно переключится.
Есть еще очень удобная функция в screen — это разделение экрана (split). Экран можно делить как по горизонтали, так и по вертикали. Например, чтобы разделить экран по горизонтали, в сессии screen нужно нажать ctrl+a S.
Экран разделится на две части. Чтобы переключиться на вторую часть, введите ctrl+a tab и после переключения для активации ctrl+a c. Одновременно в двух частях, можно запускать нужные скрипты или утилиты:
Чтобы разделить экран по вертикали, используйте ctrl+a |
Более того, разделителей может быть неограниченно количество:
Переключаемся по ним все также с помощью ctrl+a tab.
Чтобы закрыть все разделители и остаться в активном окне, используйте ctrl+a Q или просто пропишите в консоли only.
Чтобы убрать умершие или зависшие сессии screen, используйте команду:
Еще несколько горячих клавиш screen:
- Создать новое окно: Ctrl+a c
- Перейти к следующем окну: Ctrl+a p
- Перейти к предыдущему окну: Ctrl+a n
- Изменить имя окна: Ctrl+a a
Для тонкой настройки параметров screen можно использовать конфигурационные файлы:
Полная справка по screen:
Сценарии использования screen в Linux
Чаще всего утилита screen используется для операций, которые выполняются продолжительное время и чувствительны к обрыву сессии. Это могут быть обновления, копирование файлов, создание бэкапа, запуск какого-то скрипта или процесса и многое другое. В моей практике не обходится и дня, чтобы я не воспользовался данной утилитой. Чаще всего, это перенос файлов с одного сервера на другой или объемные обновления пакетов. Например, можно запустить rsync файлов с одного сервера на другой:
# screen -S backup
# rsync -avzr —progress /var/www/site/ IP:/var/www/site/
Или запустите ping до какого-либо ресурса:
В screen можно запустить любой php-скрипт, который постоянно выполняет обмен с какими-либо ресурсами, например, интеграция с сайтом или порталом:
Скрин можно запустить с такими параметрами:
# screen -A -m -d -S B24 /usr/bin/su — bitrix -c «/usr/bin/php /var/www/integration/tools/parser.php»
Мы сразу запускаем терминал и в нем выполняем запуск php-парсер, который постоянно выполняет коннект к порталу Bitrix24. Проверим список запущенных терминалов:
There is a screen on: 993.B24 (Detached)
И для максимальной надежности, можно новую сессию ssh запускать сразу с включенным screen. В файл /root/.bash_profile добавьте строчку screen:
Теперь при запуске новой сессии у вас сразу будет открываться screen терминал:
В этой статье, мы рассмотрели очень гибкий инструмент screen , который помогает в повседневной работе по администрированию серверов и выполнению различных задач. Применяйте на практике данную статью, расширяйте свои навыки в области системного администрирования Linux.
Предыдущая статья Следующая статья