Утилита 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



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

Он будет в состоянии Detached:

утилита screen


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



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

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


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

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

screen -r



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


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

CTRL+D



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

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

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


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



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

Если переносятся файлы сайта — это позволит сохранить работоспособность ресурса не нагружая сервер.

Сказать спасибо