Суббота, 12 Октябрь 2018

Многозадачность в терминале - команда screen

  •   
  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
Оцените материал
(3 голосов)

Многозадачность в терминале - команда screenScreen — это полноэкранная программа, работающая в текстовом режиме, которая позволяет в одной консоли (или ssh-сессии) иметь несколько виртуальных экранов с независимо выполняющимися в них программами. Т.е. программа screen позволяет открыть несколько терминальных сеансов  в одном окне терминала. Программа screen может быть очень полезной в том случае, если, например, вы работаете с несколькими программам в интерфейсе командной строки и вам необходимо чтобы они выполнялись одновременно, в независимых сессиях и требуется возможность переключения между ними. Также, программа screen дает возможность передать одну сессию другому пользователю.

Во многих дистрибутивах команда screen установлена по-умолчанию, однако, если в вашей системе это не так, вы можете установить её вручную достаточно просто (т.к. она есть в стандартных репозиториях большинства дистрибутивов).

Для rpm-based дистрибутивов (RedHat, CentOS, Fedora, итп) выполните:

# yum install screen

Для deb-based дистрибутивов (Debian, Ubuntu, итп) выполните:

# apt-get install screen (On Debian based Systems)

 

Запуск screen в первый раз

Для запуска команды screen просто выполните:

screen

 

Вывод информации о клавиатурных сокращениях

После запуска команды screen вы можете работать совершенно обычным образом в интерфейсе командной строки. Но, поскольку команда screen сама является программой, у неё есть свои команды и параметры.

Нажмите "Ctrl+A" и, затем, "?" (без кавычек). На экран будут выведены клавиатурные сокращения:

 

Многозадачность в терминале - команда screen

 

Для выхода нажмите "пробел" или "Enter"

 

Отключение экрана screen

Важнейшим преимуществом команды screen является функция отсоединения экрана с последующей возможностью подключения (при этом выполнение программ не прерывается).

Например, это может понадобится в том случае, если вы работаете по ssh на удаленной машине, и вам необходимо скачать объемный файл с помощью команды wget, на что потребуется, например, 2 часа. В том случае, если вы закроете ssh-сессию по собственному желанию или случайно по причине разрыва соединения процесс загрузки также прервется. Соответственно, вам придется вручную запускать загрузку заново. Избежать такой проблемы как раз поможет команда screen.

В первую очередь, запустите команду screen:

screen

Затем запустите команду, которая занимает длительное время. Например, это может быть обновление системы или, как сказано выше, процесс загрузки большого файла:

wget http://mirror.yandex.ru/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso

Во время процесса загрузки нажмите комбинацию клавиш "Ctrl+A" и затем "d" (также можно  "Ctrl+D"). При нажатии этих клавиш на экран ничего выведено не будет, только после того, как будет выполнено отключение экрана вы увидите подобное:

[detached from 7724.pts-0.howtoitru]
[istupak@howtoitru ~]$

 

Подключение отключенного экрана screen.

После того, как вы отключили экран screen вы закрыть сессию ssh. Подключившись позднее, например, удаленно из другого места вы можете подключить экран опять и проверить, была ли завершена загрузка. Для этого выполните команду:

screen -r

Вы увидите, что процесс, который вы запустили все еще работает.

В том случае, если вы запустили и оставили отключенными более чем одну сессию screen вам будет необходимо указать ID этой сессии. Для того, чтобы посмотреть, сколько сессий было запущено выполните:

screen -ls

Вывод будет примерно таким:

There are screens on:
    7938.pts-0.howtoitru   (Detached)
    7724.pts-0.howtoitru   (Detached)
2 Sockets in /var/run/screen/S-howtoitru

Если вы хотите восстановить сессию 7724.pts-0.howtoitru выполните:

screen -r 7724

 

Использование нескольких сессий screen

Как уже стало понятно, вы можете работать с несколькими сессиями screen для выполнения множества задач одновременно. Переключение между экранами можно выполнить двумя способами:

  • отключение экрана и подключение к другому (как описано выше)
  • переключение между "вложенными" экранами, не завершая команду screen

Для второго способа необходимо запустить команду screen и нажать "Ctrl-A" и "c" для создания следующего вложенного экрана. Переключение между экранами производится командами "Ctrl-A" и "n"(следующий экран) и "Ctrl-A" и "p"(предыдущий экран).

 

Запись (логирование) выполняемых команд.

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

Для запуска функции логирования нажмите "Ctrl-A" и "H" (обратите внимание на регистр символа "H", т.к. если вы выполните команду "h" будет создан скриншот экрана вместо записи действий). Все ваши действия и выводы на экран будут записаны в файл  screenlog.0 в вашей домашней директории.

Для прекращения записи опять выполните "Ctrl-A" и "H".

Также можно активировать запись запусти команду с параметром -L:

screen -L

 

Блокировка экрана

Существует возможность блокировки экрана с помощью сочетания клавиш "Ctrl-A" и "x". При блокировке на экран будет выведено:

Screen used by howtoitru <howtoitru> onhowtoitru.
Password:

 

Завершение сессии screen

Для завершения сессии (полного, а не отключения, выполняемого командой "Ctrl+A" и "d") выполните обычную команду выхода:

exit

Также можно использовать сочетание клавиш "Ctrl+A" и "k" для завершения сесии.

Добавить комментарий


Защитный код
Обновить

 

 

Scroll to top