6.4.9 Запуск приложений в фоне с помощью Screen
При работе в терминале часто возникает необходимость запускать долговременные задачи, которые нежелательно прерывать при разрыве соединения или закрытии терминала. Также бывает полезно одновременно работать с несколькими процессами или сессиями в одном окне терминала. Для решения этого вопроса можете воспользоваться утилитой Screen.
Screen – консольная утилита, позволяющая в действующей SSH сессии открывать большое количество независимых виртуальных терминалов (окон). Она предоставляет возможность запускать приложения в фоновом режиме, переключаться между разными сессиями, отсоединяться от сессий и подключаться к ним позже, даже после разрыва соединения. Screen широко используется для удаленного управления серверами через SSH, так как позволяет сохранять работающие процессы при разрыве соединения.
Установка, запуск и вывод помощи
В ряде Linux дистрибутивов Screen присутствует по умолчанию. Если утилита Screen все же отсутствует в вашем Linux дистрибутиве, Вы можете выполнить установку с помощью следующих команд.
Важно: установку нужно выполнять с уровнем доступа администратора (root). Перейти на уровень администратора можно с помощью su или sudo.
Команда для Ubuntu/Debian:
- apt-get install screen
Для CentOS/RHEL:
- yum install screen
Сразу после установки Screen готов к работе. Для начала работы запустим Screen без параметров, создав новый сеанс:
- screen
Сразу после запуска появится окно с информацией о создателях и лицензии, и будет ожидаться нажатие пробела или Enter.
Информируем: команды Screen выполняются по горячим клавишам Ctrl + a
. Нужно нажать и отпустить Ctrl + a
, а затем ввести требуемую команду. Например, для вывода списка всех команд сначала нажмите и отпустите Ctrl + a
, а потом введите ?
Ctrl + a -> ?
Если не получилось, попробуйте еще раз, соблюдая последовательность нажатий:
- Нажмите
Ctrl + a
- Отпустите
Ctrl + a
- Введите
?
Таким же образом выполняются и другие команды в Screen. Сначала нажмите и отпустите Ctrl + a
, а затем введите нужную команду, например:
Ctrl + a -> c
– создать новый скринCtrl + a -> n
– переключиться на следующий скринCtrl + a -> :
– ввод команды для отправки фоновому процессу
Обратите внимание на использование ->
для обозначения последовательности, нажать Ctrl + a
⭢ ввести команду
.
Примеры практического применения
Для начала в текущем скрине (в списке он нулевой) запустим:
- ping 8.8.8.8
Теперь введем
Ctrl + a -> c
Этой командой мы создали новый скрин, и теперь они работают одновременно.
Запустим в нем:
- ping 8.8.4.4
Для переключения между скринами можно либо указать номер скрина, либо выбрать скрин из списка:
Ctrl + a -> 0
– переведет нас на 0 скрин.Ctrl + a -> "
– выдаст меню для выбора скрина.Ctrl + a -> n
– переключит на следующий скрин.Ctrl + a -> p
– переключит на предыдущий скрин.
Теперь свернем Screen с нашими пингами. Для этого воспользуемся хоткеем
Ctrl + a -> d
После выполнения команды Screen свернется, и мы попадем в наш терминал. Для того, чтобы вернуться, запустим утилиту с ключом -r
:
- screen -r
Иногда случается неприятность с потерянными скринами, для того, чтобы подключиться к ним, нужно выполнить команду:
- screen -x
После чего найти в выводе номер потерянного скрина и вернуть его командой:
- screen -x n
где n
— тот самый номер.
Вернуться в сессию можно и после разрыва соединения SSH при удаленном использовании Screen, что делает его незаменимым при выполнении множества работ.
Можно быстро создать новый скрин с запущенной программой, например, wget
большого файла:
С помощью ключа -S
при запуске Screen можно указать имя скрина:
- screen -S download wget http://mirror.thehost.ua/debian-cd/7.8.0/amd64/iso-dvd/debian-update-7.8.0-amd64-DVD-1.iso
В нашем примере окно будет иметь название download
. Всегда есть возможность переименовать скрин хоткеем:
Ctrl + a -> A
Посмотреть все активные скрины можно командой:
- screen -list
Если Вам необходимо подключиться к скрину, запущенному в другом терминале, сделать это Вы сможете с помощью команды:
- screen -x download
Скрины можно закрыть от посторонних хоткеем:
Ctrl + a -> x
Управление окнами
В Screen есть возможность разделять основное окно на несколько областей (панелей) для более эффективной организации рабочего пространства. Вы можете создавать как горизонтальные, так и вертикальные разделы, а также легко переключаться между ними.
Горизонтальное разделение
Для горизонтального разделения окна применяется хоткей:
Ctrl + a -> S
Вертикальное разделение
Для вертикального разделения окна используется следующая комбинация:
Ctrl + a -> |
После разделения окна на панели, между ними можно переключаться с помощью команды:
Ctrl + a -> Tab
Если после переключения на новую панель ничего нельзя выполнить, значит на этой панели еще не запущен скрин. Вы можете либо создать новый, либо выбрать из уже существующих.
Закрыть отдельную панель или все панели, кроме текущей, можно так:
Ctrl + a -> X
– закрыть текущую панель.Ctrl + a -> Q
– закрыть все панели, кроме текущей.
Возможность разделения основного окна на горизонтальные и вертикальные области позволяет эффективно использовать рабочее пространство для одновременной работы с разными задачами и процессами.
Запись вывода в файл
Все, что выводится в окне Screen, можно записать в файл с помощью команды:
Ctrl + a -> H
После ввода этой команды Screen запросит имя файла для записи.
Блокировка доступа к Screen
Для блокировки Screen от несанкционированного доступа можно воспользоваться командой:
Ctrl + a -> x
После ввода этой команды будет запрошен пароль. Для разблокировки нужно будет ввести тот же пароль.
Обратите внимание: при вводе команд в Screen используются как строчные, так и прописные символы. Для переключения регистра используйте клавиши Shift или CapsLock на клавиатуре.
На этой странице
Похожие статьи
- Установка IonCube Loader на сервер
- Панель управления Hestia. Как установить панель Hestia на чистый виртуальный/выделенный сервер
- Панель управления aaPanel. Как установить панель aaPanel на чистый виртуальный/выделенный сервер
- Панель управления FastPanel. Как установить панель FastPanel на чистый виртуальный/выделенный сервер