Утилита screen в Linux

Утилита screen в Linux системах нужна тогда когда запускаются длительные процессы, которые должны продолжаться после завершения пользовательской сессии. В screen можно отслеживать запросы прослушивая определенный IP адрес при помощи tcpdump или переносить с сервера на сервер большое количество файлов.

 

 

Утилита screen и как ей пользоваться

screen позволяет выполнять определенные операции независимо от пользовательской сессии (присоединяться к ней и отсоединяться от нее).

 

Часто таким образом выполняются переносы больших объемов информации. За счет screen обеспечивается гарантия продолжения процесса в случае прерывания по той или иной причине сессии пользователя (например, по причине отключения электроэнергии).

 

 

screen запускается от имени системного пользователя.

 

Авторизовавшись с реквизитами того же пользователя (позже или зайдя на сервере с другой машины) можно подключиться к скрину и продолжить работу.

 

Посмотреть все запущенные скрины можно введя:

screen -ls

 

Если активных скринов нет при введении screen создается новая сессия

 

В ней можно запускать какую-либо команду, например:

wget http://example.com/some-large-package.iso

 

Чтобы выйти из скрина нужно ввести сочетание клавиш:

CTRL+A+D

При этом произойдет отсоединение от сессии, процесс же, запущенный в скрине, продолжит выполняться.

 

Подключиться к существующему скрину (одному из тех, что отображаются при вводе screen -ls) — в том числе из другой ssh сессии — можно выполнив команду с ключами -r или -x:

screen -x имя-скрина

 

С -r происходит подключение к последнему скрину.

screen -r

Запускать таким образом можно неограниченное количество процессов, для каждого из них будет отображаться время создания скрина.

 

Завершается командой:

CTRL+D

Когда она выполнена сессию вернуть уже нельзя.

 

 

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

screen -d -r имя-скрина

Позволит принудительно завершить существующие сессии и подключиться к скрину.

 

Для длительных переносов большого количества файлов (особенно с маломощных серверов) часто имеет смысл установить для процесса rsync или scp пониженный приоритет выполнения. Если переносятся файлы сайта — это позволит сохранить работоспособность ресурса не нагружая сервер.