6.3.9 Запуск додатків у фоні за допомогою SCREEN

У цій статті ми розглянемо основні можливості утиліти Screen.

Багато адміністраторів активно користуються скрином під час використання SSH. Також він добрий для будь-кого, хто активно користується терміналом для повсякденних завдань. Screen дозволяє керувати кількома сесіями з однієї консолі або вікна терміналу. Утиліта незамінна, коли до одного сеансу треба підключитися з двох місць одночасно або взаємодіяти з кількома сесіями. Багато адміністратори люблять Screen за те, що при втраті зв’язку по SSH можуть повернутися в свою сесію, а операції, що виконуються в момент розриву, не перервуться.

Встановлення, запуск та виведення допомоги Screen

У ряді Linux дистрибутивів (а також MacOS) Screen є за замовчуванням. У випадку з Ubuntu/Debian його потрібно поставити окремо. Зробити це можна, виконавши команду:

  1. apt-get install screen

Відразу після встановлення Screen готовий до роботи.

Для початку роботи запустимо Screen без параметрів, створивши новий скрін:

  1. screen

Відразу після запуску з’явиться вікно з інформацією про творців та ліцензії і буде очікувати натискання пробілу або Enter.

Команди Screen виконуються за гарячими клавішами Ctrl-a. Після одноразового натискання Screen чекає на команду.

Запросимо у Screen список усіх команд:

Crtl+a -> ?

Якщо не вийшло, спробуйте ще раз. Натисніть Ctrl+a, відпустіть, введіть ?.

Приклади практичного застосування Screen

Вийдемо з допомоги та попрактикуємося у використанні.

Для початку в поточному скрині (у списку він нульовий) запустимо:

  1. ping 8.8.8.8

Тепер введемо

Ctrl+a -> c

Цією командою ми створили новий скрін, і тепер вони працюють одночасно.

Запустимо в ньому:

  1. 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 великого файлу.

  1. screen wget http://mirror.thehost.ua/debian-cd/7.8.0/amd64/iso-dvd/debian-update-7.8.0-amd64-DVD-1.iso

За допомогою ключа -S під час запуску Screen можна вказати ім’я скрина.

  1. 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

Завжди можна перейменувати скрін хоткеєм:

Ctrl+a ->A

Переглянути всі активні скрин можна командою:

  1. screen -list

Якщо вам необхідно підключитися до скрин, запущеного в іншому терміналі, зробити це ви зможете за допомогою команди:

  1. screen -x download

Скрини можна закрити від сторонніх хоткеєм:

Ctrl+a ->x

Ще однією корисною можливістю утиліти є розділення вікна по регіонах.

Це робиться хоткеєм:

Ctrl+a ->S

Перемикатися між регіонами можна хоткеєм:

Ctrl+a ->Tab

Якщо після перемикання в новий регіон нічого не можна зробити, значить у цьому регіоні немає скрина, його можна додати або вибрати з існуючих.

Закриваються регіони хоткеями:

Ctrl+a ->Q Закрити всі регіони крім поточного Ctrl+a ->X Закрити поточний регіон

Як прибрати вітальне вікно в утиліті Screen

Після початку активного використання Screen дуже швидко набридає вітальне вікно. Прибрати його можна додавши у файл ~/.screenrc рядок:

  1. startup_message off

Зробити це швидко можна, виконавши команду:

  1. echo startup_message off >> ~/.screenrc

У статті розглянуті лише базові можливості Screen, щоб не перевантажувати функціоналом, що рідко використовується.