Гид по технологиям

Screen: управление несколькими SSH-сессиями на Ubuntu

• 6 min read • Linux • Обновлено 18 Nov 2025
Screen: управление несколькими SSH-сессиями на Ubuntu
Screen: управление несколькими SSH-сессиями на Ubuntu

Иллюстрация: терминал с несколькими окнами Screen

О чём эта статья

  • Что такое Screen и зачем он нужен
  • Как установить и проверить версию на Ubuntu
  • Основные сочетания клавиш и команды (cheat sheet)
  • Практические примеры: создание, отсоединение, повторное подключение, завершение и очистка «мертвых» сессий
  • Альтернативы, рекомендации по безопасности и сценарии отказа
  • SOP/чеклист для администратора и короткая памятка

Краткое определение

Screen — это мультиплексор терминала: виртуальные терминалы (окна) внутри одной SSH-сессии, которые можно детачить (detach), а затем заново прикреплять (attach). Полезен для фоновых и долгих задач.

Важно: screen не заменяет контроль доступа к серверу — он работает в рамках уже установленной SSH-сессии.

Предварительные требования

  1. Ubuntu (Server или Desktop) любой поддерживаемой версии
  2. Права sudo для установки пакета

Что мы сделаем

  1. Установим screen
  2. Изучим сочетания клавиш внутри screen
  3. Потренируем создание, отсоединение, повторное подключение и очистку сессий

Установка Screen

Установка в Ubuntu простая. На многих версиях (например, Ubuntu 18.04) screen уже установлен по умолчанию.

sudo apt-get install screen

Проверка версии:

screen --version

Пример вывода команды screen --version в терминале

Основные сочетания клавиш в Screen

Запустите простую сессию screen:

screen

Внутри screen все управляющие команды начинаются с последовательности Control+a (нажмите Ctrl и a). Чтобы увидеть справку по сочетаниям клавиш, нажмите Ctrl+a, затем ? .

Сочетания, которые стоит знать:

  • Ctrl+a c — создать новое окно внутри сессии (create)
  • Ctrl+a d — отсоединиться от сессии (detach)
  • Ctrl+a “ — показать список окон внутри текущей сессии
  • Ctrl+a k — закрыть (kill) текущее окно
  • Ctrl+a t — показать текущее время и статус
  • Ctrl+a v — показать версию screen (в некоторых сборках)

Примеры на экране: нажмите Ctrl+a ? для полной справки.

Справка по сочетаниям клавиш внутри screen

Практическое использование: базовые команды

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

screen -S my-first-screen

Если вы завершаете все процессы в сессии, вы можете просто ввести:

exit

Список текущих сессий:

screen -ls

Создаём вторую сессию, которую хотим оставить работающей в фоне:

screen -S my-second-screen

Внутри неё можно запустить долгий процесс, например top, htop, long-running script и т.п. Чтобы отсоединиться, не завершая процесс, нажмите:

Ctrl+a d

Вернитесь к списку сессий и убедитесь, что одна из них detached:

screen -ls

Пример списка screen-сессий с одной detached сессией

Создаём несколько сессий подряд:

screen -S 1
screen -S 2
screen -S 3

Если доступна только одна сессия, можно подключиться просто командой:

screen -r

Подключение к одной единственной сессии screen

Если сессий несколько, используйте идентификатор (ID) или имя, показанные в выводе screen -ls:

screen -r 2232.1

Повторное подключение к конкретной сессии по ID

Завершение и очистка

Завершить конкретную сессию можно изнутри (exit) или командой из внешнего терминала:

screen -XS  quit

Иногда процесс может быть убит внешне (kill -9 PID), и тогда screen-сессия помечается как «мертвая» — она видна в списке, но к ней нельзя подключиться. Чтобы убрать такие записи, используйте:

screen -wipe

Для завершения всех процессов screen:

killall screen

Cheat sheet: часто используемые команды

# Установить screen
sudo apt-get install screen

# Запустить новую именованную сессию
screen -S имя

# Список сессий
screen -ls

# Подключиться к сессии (если одна)
screen -r

# Подключиться по ID
screen -r 

# Отсоединиться от сессии (внутри): Ctrl+a d
# Закрыть текущее окно: Ctrl+a k
# Показать справку клавиш: Ctrl+a ?

# Убить сессию по имени из внешнего терминала
screen -XS  quit

# Удалить «мертвые» сессии
screen -wipe

Когда Screen подходит, а когда нет (контрпримеры)

  • Подходит: запуск долгих процессов, наблюдение за логами, восстановление работы после обрыва SSH.
  • Не подходит: сложное деление окна (pane) и удобная кастомизация сессий — для этого лучше tmux.
  • Не подходит: если нужна тонкая интеграция с современными терминальными эмуляторами и скриптами, ориентированными на tmux.

Альтернативы и сравнение

Коротко: самая популярная альтернатива — tmux. Отличия в том, что tmux предлагает более современную конфигурацию, разделение окон на панели и скриптовую автоматизацию. Screen проще и доступнее по умолчанию, имеет длинную историю и стабильность.

Мини-таблица (качественная):

  • Screen: простота, доступность, стабильность
  • tmux: гибкость, разделение окон/панелей, скриптинг

Решение: для быстрых задач и совместимости используйте screen; для сложных рабочих сред и ярких фич — tmux.

SOP / Playbook: запуск долгого задания через screen (шаги)

  1. Подключитесь по SSH.
  2. Создайте именованную сессию: screen -S deploy-2025-11-18
  3. Запустите задачу: ./deploy.sh &> deploy.log
  4. Отсоединитесь: Ctrl+a d
  5. Проверяйте состояние: screen -ls; tail -f deploy.log (в отдельной сессии)
  6. По окончании подключитесь: screen -r deploy-2025-11-18 и проверьте завершение.
  7. Если задача завершена — exit внутри сессии или screen -XS quit.

Памятка для администратора: чеклист перед отключением

  • Есть ли незавершённые процессы внутри screen?
  • Сессии именованы по стандарту (например, роль-YYYYMMDD)?
  • Логи перенаправлены в файлы (чтобы можно было tail после отсоединения)?
  • У пользователя есть права на screen и доступ к файлам логов?

Восстановление после разрыва соединения (incident runbook)

  1. Переподключитесь по SSH.
  2. Выполните screen -ls и найдите нужную сессию.
  3. Если сессия detached — выполните screen -r .
  4. Если сессия «мертвая» — screen -wipe для очистки списка.
  5. Если процесс был убит, найдите PID и логи, чтобы понять причину.

Безопасность и рекомендации

  • Screen запускается в контексте пользователя; разграничение прав остаётся задачей SSH и системы.
  • Логи процессов должны быть доступны только тем, кому положено.
  • Не храните секреты в открытом виде в буфере screen.
  • Рассмотрите ограничение доступа через SSH ключи и аудит подключения.

Тесты и критерии приёмки

  • Установка: screen –version выдаёт версию.
  • Создание сессии: screen -S test создаёт видимую запись в screen -ls.
  • Отсоединение: Ctrl+a d переводит сессию в detached.
  • Повторное подключение: screen -r возвращает рабочее окружение.
  • Очистка: screen -wipe удаляет пометку «dead».

Дополнительные советы и трюки

  • Используйте имена сессий по шаблону: роль-дата-номер — так легче автоматизировать очистку.
  • Для автоматического восстановления можно использовать tmuxinator или скрипты, но это выходит за рамки простого screen.
  • Если терминал не отображает символы управления корректно, попробуйте другой эмулятор терминала или настройте $TERM.

Краткое объявление (подходит для рассылки, 100–200 слов)

Screen — лёгкий и надёжный инструмент для управления несколькими терминальными сессиями в одном SSH-подключении. Он особенно полезен для запуска долгих задач, мониторинга процессов и восстановления работы после разрыва сети. В статье показано, как установить screen на Ubuntu, какие сочетания клавиш использовать, как создавать именованные сессии, отсоединяться и повторно подключаться, а также как очищать «мертвые» сессии и завершать все сеансы. Включён практичный SOP для деплоя, чеклист для админа, рекомендации по безопасности и сравнение с tmux. Если вам нужно простое и проверенное решение для фоновых задач — начните со screen, а при росте требований переходите на tmux.

Итоги

  • Screen даёт возможность запускать несколько виртуальных терминалов в рамках одного SSH-подключения.
  • Прост в установке и эксплуатации, полезен для долгих и фоновых задач.
  • Для более продвинутых сценариев рассмотрите tmux.

Ключевые выводы:

  1. Установите screen и проверьте версию: sudo apt-get install screen; screen –version.
  2. Создавайте именованные сессии: screen -S имя.
  3. Отсоединяйтесь Ctrl+a d и подключайтесь screen -r .
  4. Очищайте «мертвые» сессии screen -wipe.

Спасибо, что прочитали — используйте cheat sheet и SOP для безопасной работы с долгими задачами.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро