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

О чём эта статья
- Что такое Screen и зачем он нужен
- Как установить и проверить версию на Ubuntu
- Основные сочетания клавиш и команды (cheat sheet)
- Практические примеры: создание, отсоединение, повторное подключение, завершение и очистка «мертвых» сессий
- Альтернативы, рекомендации по безопасности и сценарии отказа
- SOP/чеклист для администратора и короткая памятка
Краткое определение
Screen — это мультиплексор терминала: виртуальные терминалы (окна) внутри одной SSH-сессии, которые можно детачить (detach), а затем заново прикреплять (attach). Полезен для фоновых и долгих задач.
Важно: screen не заменяет контроль доступа к серверу — он работает в рамках уже установленной SSH-сессии.
Предварительные требования
- Ubuntu (Server или Desktop) любой поддерживаемой версии
- Права sudo для установки пакета
Что мы сделаем
- Установим screen
- Изучим сочетания клавиш внутри screen
- Потренируем создание, отсоединение, повторное подключение и очистку сессий
Установка Screen
Установка в Ubuntu простая. На многих версиях (например, Ubuntu 18.04) screen уже установлен по умолчанию.
sudo apt-get install screenПроверка версии:
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 -S my-first-screenЕсли вы завершаете все процессы в сессии, вы можете просто ввести:
exitСписок текущих сессий:
screen -lsСоздаём вторую сессию, которую хотим оставить работающей в фоне:
screen -S my-second-screenВнутри неё можно запустить долгий процесс, например top, htop, long-running script и т.п. Чтобы отсоединиться, не завершая процесс, нажмите:
Ctrl+a dВернитесь к списку сессий и убедитесь, что одна из них detached:
screen -ls
Создаём несколько сессий подряд:
screen -S 1
screen -S 2
screen -S 3Если доступна только одна сессия, можно подключиться просто командой:
screen -r
Если сессий несколько, используйте идентификатор (ID) или имя, показанные в выводе screen -ls:
screen -r 2232.1
Завершение и очистка
Завершить конкретную сессию можно изнутри (exit) или командой из внешнего терминала:
screen -XS quit Иногда процесс может быть убит внешне (kill -9 PID), и тогда screen-сессия помечается как «мертвая» — она видна в списке, но к ней нельзя подключиться. Чтобы убрать такие записи, используйте:
screen -wipeДля завершения всех процессов screen:
killall screenCheat 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 (шаги)
- Подключитесь по SSH.
- Создайте именованную сессию: screen -S deploy-2025-11-18
- Запустите задачу: ./deploy.sh &> deploy.log
- Отсоединитесь: Ctrl+a d
- Проверяйте состояние: screen -ls; tail -f deploy.log (в отдельной сессии)
- По окончании подключитесь: screen -r deploy-2025-11-18 и проверьте завершение.
- Если задача завершена — exit внутри сессии или screen -XS
quit.
Памятка для администратора: чеклист перед отключением
- Есть ли незавершённые процессы внутри screen?
- Сессии именованы по стандарту (например, роль-YYYYMMDD)?
- Логи перенаправлены в файлы (чтобы можно было tail после отсоединения)?
- У пользователя есть права на screen и доступ к файлам логов?
Восстановление после разрыва соединения (incident runbook)
- Переподключитесь по SSH.
- Выполните screen -ls и найдите нужную сессию.
- Если сессия detached — выполните screen -r
. - Если сессия «мертвая» — screen -wipe для очистки списка.
- Если процесс был убит, найдите 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.
Ключевые выводы:
- Установите screen и проверьте версию: sudo apt-get install screen; screen –version.
- Создавайте именованные сессии: screen -S имя.
- Отсоединяйтесь Ctrl+a d и подключайтесь screen -r
. - Очищайте «мертвые» сессии screen -wipe.
Спасибо, что прочитали — используйте cheat sheet и SOP для безопасной работы с долгими задачами.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента