screen - менеджер экран в Linux. Он позволяет создать виртуальный экран консоли, который может выполнять длительные процессы в консоли без постоянного подключения к серверу. Т.е. можно запустить процесс в этом виртуальном экране, отключиться от сервера и через некоторое время проверить выполнение процесса, подключившись к серверу и открыв виртуальный экран.

Это очень полезно при выполнении долгих bash-скриптов: различных синхронизациях сайтов, скачивании файлов, разворачивании дампов огромных баз данных и т.п. Не нужно бояться, что, запустив многочасовой процесс в терминале, вы вернетесь через час и увидете, что соединение было прервано. За несколько часов даже при стабильном соединении с Интернет могут быть секундные разрывы, неговоря уже об нестабильной сети в офисах.

Также это может быть полезно, если вы запустили процесс на одном компьютере, а хотите проконтролировать уже на другом.

Установка

CentOS:

yum install screen

Debian:

apt-get install screen

Команды в CentOS и Debian могут отличаться, сочетания клавиш ниже приведены для CentOS 6.9

Создание и переименование экрана

Чтобы создать новый экран, вводим:

screen

Это виртуальный экран той же консоли, здесь доступны все те же операции. Чтобы отключиться от экрана, нажимаем [Ctrl]+[a]+[d] (регистр не важен) и попадаем в обычную консоль. При этом экран работает; если там запущен тот же top, то при возвращении он так и будет работать.

Полный список команд экрана можно получить нажав [Ctrl]+[a]+[?].

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

screen -ls

Результат будет примерно такой:

There are screens on:
        8525.pts-0.dedic1234      (Detached)
        9709.pts-0.dedic1234      (Detached)
2 Sockets in /var/run/screen/S-testserver.

Имя сокета выглядит как <pid>.<tty>.<host>. Для более понятного имени можно создавать новый экран командой:

screen -S yourtitle

В этом случае имя экрана будет выглядеть как <pid>.yourtitle

Открытый экран можно переименовать, выполнив следующие действия:

  • нажимаем [Ctrl]+[a]+[:](двоеточие)
  • вводим sessionname yourtitle
  • Enter

Подключение к экрану и уничтожение

Для возврата в экран нужно выполнить команду:

screen -R pid.yourtitle

или

screen -r pid

или

screen -r yourtitle

Чтобы отключиться от экрана и уничтожить его, вводим при открытом экране [Ctrl]+[a]+[k], [y].

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

screen -r yourtitle -X kill