«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».