MAATRIX / Блог / tmux и screen для долгих задач по SSH

tmux и screen для долгих задач по SSH

Блог MAATRIX · 2026-07-07

Запустили миграцию, бэкап или обучение модели по SSH, связь оборвалась — и процесс убит вместе с сессией. tmux и screen решают это: процесс живёт в отдельной сессии на сервере, а вы отсоединяетесь и переподключаетесь, когда удобно. Разбираем tmux как основной инструмент и screen как запасной.

Проблема оборванной SSH-сессии

['Когда вы запускаете команду в SSH, она привязана к вашей сессии. Разрыв связи (закрыли ноутбук, моргнул интернет) присылает процессу SIGHUP, и он умирает. Долгая операция — импорт дампа, сборка, ML-тренировка — обрывается на середине.', 'tmux и screen — это терминальные мультиплексоры: они держат сессию на сервере независимо от вашего подключения. Отсоединились — процесс продолжает работать; вернулись — увидели тот же экран.', 'На VPS MAATRIX это стандартный рабочий инструмент: запустили тяжёлую задачу на AMD EPYC, отключились, проверили результат позже с телефона.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для длительных задач

Установка

['Обычно tmux уже есть; если нет — ставим:', '
sudo apt update && sudo apt install -y tmux
', 'Для RHEL/CentOS/AlmaLinux:', '
sudo dnf install -y tmux
']

Базовый цикл: старт, отсоединение, возврат

['Создаём именованную сессию, запускаем в ней задачу:', '
tmux new -s backup\n# внутри сессии запускаем долгую команду\npg_dump mydb | gzip > /mnt/data/backup.sql.gz
', 'Отсоединяемся, не прерывая процесс — комбинация Ctrl+b, затем d (detach). Можно спокойно закрыть SSH.', 'Позже подключаемся к серверу заново и возвращаемся в сессию:', '
tmux ls              # список сессий\ntmux attach -t backup
', 'Процесс всё это время работал. Завершить сессию, когда она больше не нужна — просто exit внутри неё или:', '
tmux kill-session -t backup
']

Окна и панели

['tmux умеет больше одной оболочки в сессии. Все команды начинаются с префикса Ctrl+b:', '
  • Ctrl+b c — новое окно; Ctrl+b n / p — следующее/предыдущее.
  • Ctrl+b % — разбить панель вертикально; Ctrl+b " — горизонтально.
  • Ctrl+b <стрелка> — переход между панелями.
  • Ctrl+b d — отсоединиться от всей сессии.
', 'Типичный сценарий: в одной панели крутится сервер, во второй смотрите логи через tail -f, в третьей работаете руками.']

Запасной вариант: screen

['screen делает то же самое, синтаксис отличается. Полезно знать, если tmux недоступен:', '
sudo apt install -y screen\nscreen -S backup        # создать сессию\n# отсоединиться: Ctrl+a затем d\nscreen -ls              # список сессий\nscreen -r backup        # вернуться
', 'Префикс у screen — Ctrl+a вместо Ctrl+b. Для новых серверов рекомендуют tmux: активнее развивается и гибче настраивается.']

Частые ошибки

['
  • Забыли имя сессии — tmux ls покажет все, attach без -t цепляется к последней.
  • Внутри tmux не работает прокрутка мышью — войдите в режим копирования Ctrl+b [ и листайте стрелками, выход — q.
  • Запустили задачу без tmux и уже боитесь разрыва — на будущее используйте nohup command & или сразу tmux.
  • Сессия исчезла после перезагрузки сервера — tmux не переживает ребут; для этого нужен systemd-сервис, а не мультиплексор.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для длительных задач

Частые вопросы

tmux или screen?

Для новых серверов — tmux: активная разработка, панели, гибкая настройка. screen берите, только если tmux нельзя поставить.

Переживает ли tmux-сессия перезагрузку сервера?

Нет. При ребуте все сессии теряются. Задачи, которые должны переживать перезагрузку, оформляйте как systemd-сервис.

Чем tmux лучше nohup?

nohup просто отвязывает процесс от терминала, но вернуться к его интерактивному выводу нельзя. tmux сохраняет живой терминал, к которому можно переподключиться.