X
    Categories: ПрактикумСофт

Screen – эффективное управление процессами в Терминале


В данной статье речь пойдет о полезной утилите – screen. Для чего она служит и в чем ее эффективность? Она может быть очень полезна, если вы удаленно управляете своим или другим компьютером, для управления сервером и т.д. К примеру вы по ssh соединились к удаленному компьютеру и решили запустить консольный торрент-клиент rTorrent. Без помощи screen, окно Терминала будет занято процессом rTorrent и вы больше ничего не сможете делать. Чтобы запустить другое приложение или процесс, вам будет нужно запускать еще и одно или несколько окон Терминала. А вот если использовать screen, то вы сможете управлять в одном окне Терминала множеством процессов, переключаясь между ними. Удобно, не правда ли?

Если опять вернуться к вышеупомянутой программе rTorrent, то она работает исключительно через окно Терминала и свернуть ее в фон не получится, можно только выйти. А вот в связке со screen все работает на “Отлично”. Если программа не установлена, то установим ее командой:

sudo apt-get install screen

Чтобы запустить утилиту нужно выполнить команду:

screen



В таком варианте, без параметров, утилита создает новый скрин (экран) и откроет сессию командной оболочки. Чтобы проверить его работу, запустите в окне Терминала утилиту Top:

top

В итоге вы увидите консольную программу-мониторинг, которая показывает полезную информацию о процессах системы, загрузке процессора, памяти и т.д. Теперь, чтобы свернуть скрин с запущенной Top, нужно нажать комбинацию клавиш – Ctrl+A, после чего нужно нажать D. Вот в принципе и все, что нужно запомнить. Комбинация Ctrl+A даст команду screen для перевода в командный режим, а клавиша D свернет текущий экран. Теперь, чтобы снова вернуть свернутый экран консоли, нужно выполнить команду:

screen -r

Параметр -r служит для сигнализации утилите, что нужно открыть свернутый скрин. Теперь завершим работу Top, нажав клавишу q. Чтобы выйти из утилиты screen нужно выполнить:

exit

Вы должны увидеть предупреждение, что программа завершает свою работу – [screen is terminating]

Теперь давайте запустим консольный торрент-клиент rTorrent. Делается это командой:

screen rtorrent

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

screen -S top top

Первая запись top – это имя, присвоенное скрину с запущенной утилитой top, а вторая запись top – это уже сама команда. Параметр -S указывает утилите, что мы создаем имя для нового скрина. Теперь свернем созданный скрин уже знакомой комбинацией Ctrl+A и далее D. Теперь давайте создадим еще один скрин с запущенным консольным плеером MOC:

screen -S moc mocp

Снова свернем его и создадим еще один скрин, в котором запустим файловый менеджер Midnicht Commander:

screen -S mc mc

Свернем и этот скрин. Теперь, чтобы вернуться к нужному скрину, достаточно выполнить команду, вида:

screen -r name_screen

Вместо name_screen нужно указать имя скрина, которое вы ему присвоили. Например:

screen -r moc

Чтобы просмотреть все созданные скрины, нужно выполнить команду:

screen -list

Должны увидеть что-то похожее на:

There are screens on:
7203.mc (22.06.2017 00:35:37) (Detached)
6977.moc (22.06.2017 00:12:33) (Detached)
6955.top (22.06.2017 00:07:50) (Detached)

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

man screen


admin-dm2003: