Использование команды screen в Linux: полный обзор


В Linux часто возникает задача запускать процессы, которые должны продолжать работать даже после закрытия терминала или разрыва SSH-сессии. Для этого используется утилита GNU Screen — мощный инструмент управления терминальными сессиями.


Что такое screen

screen — это терминальный мультиплексор. Он позволяет:

  • запускать несколько сессий в одном терминале
  • отсоединяться от сессии без остановки процессов
  • повторно подключаться к уже запущенным процессам
  • работать с удалёнными серверами без потери данных при обрыве соединения

Установка screen

Ubuntu / Debian:

sudo apt update
sudo apt install screen

CentOS / RHEL:

sudo yum install screen

Arch Linux:

sudo pacman -S screen

Основные команды screen

Создание новой сессии

screen

Или с именем:

screen -S mysession

Отсоединение от сессии (detach)

Чтобы выйти из screen, не останавливая процессы:

Ctrl + A, затем D

После этого вы вернётесь в обычный терминал, а процесс продолжит работу.


Просмотр списка сессий

screen -ls

Пример вывода:

There are screens on:
    1234.mysession   (Detached)
    5678.another     (Detached)

Подключение к сессии

screen -r mysession

или по ID:

screen -r 1234

Завершение сессии

Внутри screen:

exit

или завершить принудительно:

screen -X -S mysession quit

Полезные горячие клавиши

Все команды начинаются с:

Ctrl + A

Далее:

  • C — создать новое окно
  • N — следующее окно
  • P — предыдущее окно
  • D — отсоединиться от сессии
  • K — закрыть текущее окно
  • " — список окон

Пример использования

Допустим, вы запускаете долгий процесс на сервере:

screen -S backup

Запускаете резервное копирование:

rsync -av /data /backup

Отсоединяетесь:

Ctrl + A, D

Теперь можно закрыть SSH — процесс продолжит работать.


screen vs tmux

Сегодня часто используют альтернативу — tmux, но screen всё ещё актуален:

Функцияscreentmux
Простота
Гибкостьсредняявысокая
Распространённостьвысокаявысокая

Заключение

screen — это простой и надёжный инструмент для управления длительными процессами в Linux. Он особенно полезен при работе по SSH, автоматизации задач и администрировании серверов.