screen — менеджер консольных сессий

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

Вот и всё 🙂