Утилита 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 -ls) можно выполнив команду с ключами -r или -x:
screen -x имя-скрина
Подключение может выполнсять в том числе из другой ssh сессии.
С -r происходит подключение к последнему скрину.
screen -r
Запускать таким образом можно неограниченное количество процессов. Для каждого из них будет отображаться время создания скрина.
Завершается командой:
CTRL+D
Когда она выполнена сессию вернуть уже нельзя.
Переключения между пользовательскими сессиями для процесса, выполняемого в скрине проходят незаметно.
screen -d -r имя-скрина
Позволит принудительно завершить существующие сессии и подключиться к скрину.
Для длительных переносов большого количества файлов (особенно с маломощных серверов) часто имеет смысл установить для процесса rsync или scp пониженный приоритет выполнения.
Если переносятся файлы сайта — это позволит сохранить работоспособность ресурса не нагружая сервер.