screen, как и tmux является менеджером консольных сессий. Screen менее функционален, более прост, зато легче и более распространён.
Как он работает, проще всего будет объяснить на примере.
Допустим, нас есть 15 минут до обеденного перерыва и нужно на удалённом сервере выполнить три задачи, которые могу длится гораздо дольше, чем имеющиеся у нас 15 минут:
1. Запустить архивирование папки /home для резервного копирования
2. Скачать свежий образ Debian
3. Скомпилировать новый LibreOffice
Сложность этой задачи в том, что как только окно терминала будет закрыто/связь с удалённым сервером прервётся, прервётся и выполнение задания. Вот тут-то нам и поможет screen!
Подключившись к удалённому серверу, запускаем сессию для выполнения архивации:
screen -S archiving
Запускаем архивацию и нажимаем комбинацию клавиш: CTRL+A+D
Запускаем сессию для скачивания:
screen -S skachivanie
Запускаем скачивание, отключаемся от сессии CTRL+A+D
и запускаем сессию для сборки LibreOffice:
screen -S buildLO
Теперь в 3х сессиях у нас выполняются 3 задания. И мы можем спокойно отключиться и идти на обед. Задания запущены и выполняются.
После обеда подключимся к серверу снова. Посмотрим, какие у нас сессии есть:
screen -ls
И увидим что-то похожее:
$ screen -ls There are screens on: 20513.archiving (Detached) 20557.buildLO (Detached) 20536.skachivanie (Detached)
Теперь подключимся к сессии buildLO:
screen -r 20557.buildLO
И сможем увидеть что там происходит. Отключаться от сессии мы уже умеем, комбинацией клавиш: CTRL+A+D . Однако, если у нас задание выполнилось и сессия нам больше не нужна, мы можем её закончить, написав в консоли:
exit
Вот и всё 🙂