«Screen» — очень удобная программа которая имеет множество функций. Очень удобно использовать эту утилиту при удаленном подключении к системе по ssh. Но наиболее частое ее применение - сворачивание в фон программ, которые сами этого не умеют, с возможностью последюущего возврата к ним. это может быть полезно при работе с программами, которые реализованы не в виде «демон+клиент», а единым целым, и не работают без запуска интерфейса.

Установка screen

Для установки на Ubuntu нужно выполнить команду

sudo apt-get install screen  

После этого нужно запустить screen:

screen  

После запуска вы увидите либо приглашение командной строки, либо «экран приветствия», нажав SPACE или ENTER в котором, вы так же попадете в shell. При этом все команды будут запущены уже «внутри» screen’а.

Для того, чтобы выйти из screen’а (выйти, а не отсоединиться) достаточно выйти из всех открытых в нем оболочек, либо же, нажать комбинацию клавиш Ctl-a , и ответить «y» на вопрос «действительно ли вы хотите выйти».

Отсоединиться от текущего скрина, не закрывая и не завершая сессии, можно комбинацией Ctrl-a d.

Подключение к screen

Если у вас уже есть запущенная сессия, и вы хотите подсоединиться к ней, то

  • если сессия одна, достаточно просто команды:
screen –x  
  • если сессий несколько, то: посмотреть список запущенных screen’ов можно командой screen -ls:
screen -ls  
There are screens on:  
        2672.pts-0.ubuntu       (Detached)
        2437.pts-0.ubuntu       (Detached)
2 Sockets in /var/run/screen/S-diesel.  

Выбираем нужный нам screen, и присоединяемся к нему:

 screen -x 2672.pts-0.ubuntu 

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

  $  screen -S "job1"

где job1 — это название нашей «переименнованной» сессии. Теперь в -ls мы увидим гораздо более понятное:

$  screen -ls
There are screens on:  
        2672.pts-0.ubuntu       (Detached)
        2795.job1       (Detached)
        2437.pts-0.ubuntu       (Detached)
3 Sockets in /var/run/screen/S-diesel.  

и сможем подсоединиться к сессии job1, просто указав ее имя:

$  screen -x job1

Переключение между окнами screen

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

Мониторинг выполнения команды

Если открыто несколько окон, полезной может быть возможность следить за активностью в каком-то из них. Переходим в окно с этой командой, жмем Ctrl — a m, видим надпись типа такой: «Window 0 (bash) is now being monitored for all activity». Когда что-то в окне изменится, screen подаст звуковой сигнал, а в списке окон после номера появится символ «@».

Прокрутка экрана в screen

Для просмотра вывода команды, который ушел выше границ окна, нужно нажать Ctrl-a [

Это переключит screen в Copy mode. Для выхода из этого режима просто нажмите Esc.

Конфигурация screen

Конфигурируется screen с помощью файла ~/.screenrc, в вашем домашнем каталоге. Например, можно написать туда:

caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c"  
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"  

Это даст вам все время видимый список открытых окон, и другую полезную информацию внизу экрана.

Также при запуске Screen по-умолчанию выполняются команды из файла /etc/screenrc и файла .screenrc из домашнего каталога пользователя. Многие команды которые можно использовать в файлах конфигурации были рассмотрены в таблицах выше в поле «Текстовая команда». Ниже представлен пример конфигурации Screen из файла .screenrc:

# Отключить вывод лицензионной информации при старте Screen
startup_message off  

# Открыть оболочку для работы
chdir  
screen -t Work  

# Открыть оболочку для управления конфигурацией
chdir /etc  
screen -t Configuration  

# Открыть оболочку для просмотра логов
chdir /var/log  
screen -t Logs  
# Выбрать первое окошко после старта
select 0  

Этот файл конфигурации открывает три окна с именами Work, Configuration, Logs, соответственно в личном каталоге пользователя, в каталоге/etc и каталоге /var/log. После запуска на экране будет находиться первое окно с именем Work.

Завершение Screen

Если по какой-то причине сессия screen перестает отвечать, можно завершить ее. Для этого нужно подключиться к нужной сессии, затем нажать Ctrl — a и ввести команду «:quit».

Обновлено 17 августа 2018 г.