Когда SSH-соединение рвётся, все запущенные в терминале программы получают сигнал SIGHUP («отбой») и завершаются вместе с сессией — обрывается копирование базы, сборка проекта, длинный импорт. Лечится это мультиплексором терминала: screen или tmux запускают ваши команды в отдельной сессии на стороне сервера, которая живёт независимо от подключения. Вы отцепляетесь двумя клавишами, закрываете ноутбук, а через час возвращаетесь к тому же экрану с продолжающимся процессом. Оба пакета есть в репозиториях любого VPS с Ubuntu и ставятся одной командой без настройки. Репозиторий — это официальное хранилище программ дистрибутива, откуда система скачивает пакеты.
Материал рассчитан на того, кто уже подключается к серверу по SSH, но запускает всё «в лоб» и теряет результат при каждом обрыве Wi-Fi. Разберём минимальный набор команд для screen и tmux, отличия между ними и деление экрана на панели. Затем посмотрим альтернативы — nohup и systemd-юнит — и типовые ошибки вроде «There is no screen to be resumed».
Почему процессы умирают, когда рвётся SSH-соединение
Каждая программа в терминале привязана к управляющему терминалу — каналу, через который она получает ввод и отдаёт вывод. Когда SSH-соединение обрывается, серверный демон sshd закрывает канал и рассылает дочерним процессам сигнал SIGHUP. Демон — это фоновая программа-служба: у неё нет окна и она работает постоянно, обслуживая входящие запросы. Название расшифровывается как hangup, «повесить трубку»: термин остался со времён модемов.
По умолчанию SIGHUP убивает процесс: программа не обязана его обрабатывать, и почти ни одна консольная утилита этого не делает. Поэтому многочасовое копирование 200 ГБ утилитой rsync или установка зависимостей, идущая 15 минут, прекращаются ровно в тот момент, когда у вас переключился мобильный интернет или уснул ноутбук. Хуже того, процесс может умереть на середине записи файла и оставить повреждённые данные — например, недокачанный дамп базы, который выглядит целым, пока вы не попробуете его развернуть.
Проверить, что осталось живо после обрыва, помогает команда ps aux — она выводит список всех процессов системы, а чтение её вывода разобрано в материале про просмотр процессов в Linux. Мультиплексор снимает проблему: сессия screen или tmux не привязана к вашему SSH-подключению, поэтому SIGHUP до неё не доходит.
Что такое мультиплексор терминала и чем он отличается от nohup
Мультиплексор — это программа, которая создаёт на сервере виртуальный терминал и держит его открытым сама. Ваш SSH-клиент лишь «подглядывает» в этот терминал и рисует картинку. Отключились — картинка пропала, терминал остался. Подключились снова — прицепились к тому же терминалу и увидели вывод команды за всё время отсутствия.
Screen появился в 1987 году и входит в базовые репозитории почти всех дистрибутивов. Tmux вышел в 2007 году и умеет больше: делит окно на панели, хранит настройки в понятном конфиге, показывает статусную строку. Задачу они решают одну, поэтому держите на сервере что-то одно.
Есть более простой вариант: nohup. Эта команда запускает программу, заранее отключив ей реакцию на SIGHUP, и перенаправляет вывод в файл nohup.out. Разница принципиальна: nohup даёт запустить и забыть, а мультиплексор даёт вернуться и посмотреть. Если процессу нужно задать вопрос («перезаписать файл? y/n») или вы хотите видеть прогресс-бар — нужен screen или tmux. Если команда полностью автономна и её вывод не жалко читать из лога — хватит nohup.
Установка screen и tmux на Ubuntu, Debian и AlmaLinux
Обе программы занимают меньше 1 МБ и есть в стандартных репозиториях, поэтому подключать сторонние источники не нужно. Ставим под пользователем с правами администратора: sudo означает «выполнить от имени root», то есть от суперпользователя системы.
# Ubuntu и Debian: обновляем список пакетов и ставим оба мультиплексора
sudo apt update
sudo apt install -y screen tmux
# AlmaLinux, Rocky Linux, CentOS Stream
sudo dnf install -y screen tmux
Флаг -y отвечает «да» на вопрос о подтверждении установки, чтобы команда отработала без вашего участия. После установки проверьте версии — так вы убедитесь, что исполняемые файлы на месте и запускаются:
screen --version
tmux -V
На большинстве образов Ubuntu 22.04 и 24.04 screen уже предустановлен, а tmux — нет. Если вы только развернули машину и ещё не проходили базовую настройку, посмотрите наш чеклист по настройке VPS с нуля: там про обновления, пользователей и firewall. Отдельно стоит сразу перейти на вход по SSH-ключу вместо пароля — при частых переподключениях это экономит время и снимает риск подбора пароля.
Screen: как пользоваться — четыре команды, которых хватает на всё
Работа со screen строится вокруг одной управляющей комбинации — Ctrl+A. Она сама по себе ничего не делает, а лишь сообщает программе: следующая клавиша адресована не запущенному приложению, а самому screen. Поэтому все действия выглядят как «Ctrl+A, отпустить, нажать вторую клавишу».
Именованные сессии — обязательная привычка. Безымянная получает номер вида 12345.pts-0.srv, а через неделю таких наберётся пять штук.
Первый запуск выглядит так:
- Подключитесь к серверу по SSH обычным способом.
- Создайте именованную сессию:
screen -S work. Экран очистится — вы уже внутри. - Запустите долгую команду, например
rsync -av /var/www /backup— она копирует каталог сайта в каталог резервных копий, сохраняя права и показывая имена файлов. Убедитесь, что пошёл вывод. - Отцепитесь: нажмите
Ctrl+A, отпустите, нажмитеD. Появится строка [detached from 12345.work]. - Закройте SSH командой
exit— процесс внутри сессии продолжит работу. - Подключитесь заново и посмотрите список сессий:
screen -ls. - Вернитесь в сессию:
screen -r work. Вы увидите весь вывод, накопившийся за время отсутствия.
После работы сессию закрывают, иначе она провисит месяцами. Наберите внутри неё exit или нажмите Ctrl+D — screen завершится, когда закроется последнее окно. Пустой screen -ls выводит строку No Sockets found.

Tmux: как пользоваться — те же действия, другая управляющая клавиша
Логика tmux повторяет screen, но управляющая комбинация другая — Ctrl+B. Разработчики сменили её намеренно: Ctrl+A в командной строке bash перемещает курсор в начало строки, и screen это привычное сочетание перехватывает. Tmux оставляет Ctrl+A вашей оболочке.
Команды снаружи сессии пишутся словами, а не флагами: tmux new, tmux attach, tmux ls читаются как английские фразы и не требуют помнить, что -r значит resume.
# создать именованную сессию work
tmux new -s work
# отцепиться: Ctrl+B, отпустить, затем D
# посмотреть список живых сессий
tmux ls
# вернуться в сессию work
tmux attach -t work
# завершить сессию снаружи, если внутрь заходить не нужно
tmux kill-session -t work
Флаг -s задаёт имя новой сессии (от session), -t указывает, к какой сессии относится команда (от target). Вывод tmux ls выглядит как строка work: 3 windows (created Thu Sep 4 11:20:14 2026) — видно имя, число окон и время создания. Если сессия открыта в другом терминале, в конце появится пометка (attached).
Внизу экрана tmux рисует статусную строку: слева список окон, справа имя хоста и часы. В screen такой индикации нет, и понять, внутри вы сессии или снаружи, можно только по памяти.
Панели и окна: как разделить экран в tmux
Окно в tmux — это полноэкранная вкладка, панель — часть окна. Панели удобны, когда нужно одновременно видеть две вещи: слева работающий сервер приложения, справа tail -f по логу. Раньше для этого открывали два SSH-подключения, теперь хватает одного.
Делится окно двумя сочетаниями. Ctrl+B и затем % режет окно вертикальной линией — панели встают рядом. Ctrl+B и затем кавычка " режет горизонтально — панели встают одна над другой. Переключение между панелями — Ctrl+B и стрелка в нужную сторону. Закрывается панель обычным exit, и оставшиеся автоматически растягиваются на освободившееся место.
Стандартный терминал — это 80 символов в ширину и 24 строки в высоту. Делить его больше чем на три панели бессмысленно: уже при трёх на каждую приходится по 8 строк, и вывод команды в них не помещается. Практичный максимум — 2 панели на окно и несколько окон: новое окно создаётся сочетанием Ctrl+B и C (create), переключение между ними — Ctrl+B и номер окна от 0 до 9.
Screen тоже умеет делить экран, но реализация неудобная: разделение не сохраняется при отцеплении сессии, и после screen -r вы увидите одну панель вместо двух. Если деление экрана для вас важно, выбирайте tmux сразу.
Screen против tmux: таблица сочетаний и различий
Ниже — минимум, который стоит выписать на бумажку и держать рядом первую неделю. Через десяток подключений руки запомнят комбинации сами.
Обратите внимание: команды в первой колонке набираются в обычной командной строке, а сочетания клавиш работают только внутри уже запущенной сессии.
| Действие | screen | tmux |
|---|---|---|
| Создать именованную сессию | screen -S work |
tmux new -s work |
| Отцепиться от сессии | Ctrl+A, затем D | Ctrl+B, затем D |
| Список сессий | screen -ls |
tmux ls |
| Вернуться в сессию | screen -r work |
tmux attach -t work |
| Новое окно внутри сессии | Ctrl+A, затем C | Ctrl+B, затем C |
| Разделить экран по вертикали | не сохраняется при detach | Ctrl+B, затем % |
| Разделить экран по горизонтали | не сохраняется при detach | Ctrl+B, затем « |
| Год первого релиза | 1987 | 2007 |
Новичку я советую tmux: статусная строка сразу показывает, где вы находитесь, панели работают предсказуемо, а настройки в файле ~/.tmux.conf читаются без документации. Screen оправдан в двух случаях — если он единственный, что стоит на чужом сервере, и если вы работаете с последовательным портом железки, здесь у него исторически лучше поддержка.

Когда достаточно nohup, а когда нужен systemd-юнит
Мультиплексор — инструмент для интерактивной работы руками. Для двух соседних задач есть решения лучше, и путать их не стоит: иначе после перезагрузки сервера «постоянно работающий» скрипт исчезнет вместе с сессией.
Первый случай — одна автономная команда, за которой не надо следить. Здесь достаточно nohup: символ & в конце отправляет процесс в фоновый режим, а nohup защищает его от SIGHUP. Весь вывод при этом уходит в файл.
# запустить скрипт в фоне и защитить от обрыва сессии
nohup python3 /opt/import.py &
# посмотреть, что он пишет, в реальном времени
tail -f nohup.out
Второй случай — служба, которая должна подниматься после перезагрузки: телеграм-бот, веб-приложение, игровой сервер. Ни screen, ни nohup такого не дают — после reboot процесс не запустится. Нужен systemd-юнит: файл-описание службы, который система читает при старте, сама поднимает программу и перезапускает её при падении. Вечная сессия screen для бота — частая ошибка, и обнаруживается она через месяц, при плановой перезагрузке хоста.
Простой критерий выбора: нужен ли ввод с клавиатуры внутри процесса. Интерактивная миграция базы, распаковка с вопросами, ручное тестирование — только мультиплексор.
Сколько ресурсов ест мультиплексор и на каком сервере его держать
Расход ресурсов символический: пустая сессия занимает 2–4 МБ оперативной памяти и не нагружает процессор, пока в ней ничего не выполняется. Фактическое потребление показывает утилита htop, если отсортировать список по колонке RES — в ней указана реально занятая процессом оперативная память. Нагрузку создаёт не мультиплексор, а то, что вы в нём запустили.
Вывод простой: под screen и tmux отдельный тариф не нужен. Подойдёт любая машина, где вы и так работаете, включая бюджетные конфигурации с 1 ядром и 1 ГБ памяти. В каталоге 44 площадки. У нижней границы цены выглядят так.
| Провайдер | Стартовая цена | Конфигурация начального тарифа |
|---|---|---|
| Cloudcore | от 59 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe |
| Hosting-Russia | от 99 ₽/мес | стартовая конфигурация с 1 ядром |
| 4VPS | от 110 ₽/мес | 1 ядро, 1 ГБ RAM, 5 ГБ NVMe |
| HostVDS | от 127 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe |
Данные проверены 04.09.2026.
Подумать заранее стоит только о диске. Буфер прокрутки tmux хранит 2000 строк на панель — это единицы мегабайт, а логи долгих задач в nohup.out разрастаются до сотен мегабайт за неделю, и на тарифе с диском 5 ГБ это заметно. Другие стартовые конфигурации собраны в разделе недорогих VPS.
Диагностика: сессия не находится или не отцепляется
Разбирать проблему нужно по слоям. Первый: тот ли это сервер? При нескольких машинах легко подключиться не туда и искать сессию, которой здесь не было. Проверить помогает команда hostname — она печатает имя текущего сервера.
Второй слой: тот ли пользователь. Сессии принадлежат конкретному пользователю, и запущенную от root вы не увидите, зайдя как обычный user; текущее имя покажет whoami. Третий слой — само сообщение об ошибке.
| Сообщение | Что произошло | Что делать |
|---|---|---|
| There is no screen to be resumed | Сессии с таким именем нет: она завершена или создана другим пользователем | Выполнить screen -ls, при пустом списке создать заново |
| no sessions (в tmux) | Ни одной живой сессии tmux у этого пользователя | Создать: tmux new -s work |
| (Attached) в списке screen | Сессия уже открыта в другом терминале | Перехватить: screen -d -r work — ключ -d отцепит чужой терминал |
| sessions should be nested with care | Вы пытаетесь запустить tmux внутри tmux | Отцепиться (Ctrl+B, D) и работать в существующей сессии |
Отдельная ситуация — сессия «умерла» вместе с сервером. После перезагрузки машины сессии не восстанавливаются: мультиплексор живёт в оперативной памяти. Если поднимать одно и то же приходится каждый раз — задача просится в systemd-юнит.
Частые ошибки
Большинство проблем у новичков не технические, а организационные: сессии плодятся, имена забываются, важный процесс оказывается запущен не там.
Общее правило: одна задача — одна именованная сессия, и после завершения работы её закрывают. Тогда screen -ls всегда показывает короткий понятный список из двух-трёх строк, а не десяток безымянных номеров, в которых приходится разбираться перебором.
- Создавать сессии без имени. Через неделю вы не отличите 4821.pts-0 от 5190.pts-1 и будете заходить в каждую наугад.
- Держать в screen постоянную службу вроде телеграм-бота — она не переживёт перезагрузку сервера.
- Закрывать окно терминала вместо отцепления. Сессия останется жива, но будет числиться подключённой, и вернуться в неё получится только командой
screen -d -r. - Запускать сессию от root, а потом искать её из-под обычного пользователя.
- Путать Ctrl+A и Ctrl+B, работая то со screen, то с tmux на разных серверах: выберите одну программу и ставьте только её.
- Забывать про буфер: вывод старше 2000 строк tmux не хранит, поэтому важные логи пишите в файл через
tee— эта команда одновременно показывает вывод на экране и сохраняет его в файл.
Частые вопросы
Нужны ли права root, чтобы пользоваться screen или tmux? Нет, права администратора нужны только на этапе установки пакета через apt или dnf. Дальше сессии создаются от обычного пользователя: процесс внутри получает ровно те права, что у вас.
Сколько сессий можно держать одновременно? Лимит упирается в память: сессия занимает 2–4 МБ, на сервере с 1 ГБ RAM их поместятся сотни. Практический предел другой — больше 4–5 сессий человек не помнит.
Что произойдёт с сессией при перезагрузке сервера? Она исчезнет вместе со всеми процессами: мультиплексор защищает от разрыва сети, но не от рестарта системы. Для задач, которые должны подниматься сами, нужен systemd-юнит.
Можно ли подключиться к одной сессии с двух компьютеров? Да: в screen команда screen -x work подцепляет вас к уже открытой сессии, оба увидят один экран и оба смогут печатать. В tmux то же делает обычный tmux attach -t work.
Почему после отцепления команда всё-таки остановилась? Скорее всего, процесс упал сам — по нехватке памяти или из-за ошибки в данных. Проверьте журнал ядра командой dmesg | tail — она печатает последние системные сообщения. Если сработал OOM-killer (механизм ядра, который при нехватке памяти завершает самый прожорливый процесс), там будет строка про убитый процесс.
Чем tmux лучше screen для новичка? Статусной строкой, панелями, которые переживают отцепление, и понятным файлом настроек ~/.tmux.conf.
Нужно ли что-то настраивать сразу после установки? Нет, обе программы работают из коробки. Полезнее сначала настроить безопасный вход по ключу — об этом есть инструкция по настройке SSH на VPS.
Итог
Чтобы перестать терять долгие процессы, достаточно выучить четыре команды и одно сочетание клавиш. Для screen это screen -S work, Ctrl+A и D, screen -ls, screen -r work. Для tmux — tmux new -s work, Ctrl+B и D, tmux ls, tmux attach -t work. Новичку удобнее tmux.
Отдельного сервера под мультиплексор не требуется — хватит той же машины, где вы разворачиваете проект, от 59 ₽/мес за конфигурацию с 1 ядром и 1 ГБ памяти. Если сервер ещё не выбран, сравните тарифы в разделе VPS с Linux: там собраны предложения 44 площадок с фильтрами по ядрам, памяти и локации.