Гайды

Как пользоваться tmux — чтобы команда на сервере пережила закрытый ноутбук

Иллюстрация: экран, разделённый на три панели, продолжает светиться, хотя кабель от ноутбука уже выдернут

Ты запустил на сервере долгую штуку: установку, миграцию базы, агента, который час правит код. Нужно уехать — закрываешь ноутбук. Возвращаешься, а работа оборвалась на середине.

Причина простая: всё, что ты запускаешь по SSH, живёт внутри твоего соединения. Соединение порвалось — программы получили сигнал «трубку повесили» и вышли.

tmux решает это одним ходом. Он держит терминал на самом сервере, а ты к нему только подключаешься. Отключился — терминал продолжает работать. Подключился — видишь всё ровно там, где оставил, даже с другого компьютера.

Звучит сложно, но для 90% задач хватит пяти действий. Давай по шагам.

Шаг 1. Установи tmux

На сервере с Ubuntu или Debian:

sudo apt install tmux

На Mac — brew install tmux. Проверь, что всё встало: tmux -V покажет версию.

Ставить нужно там, где будет идти работа. Если команда крутится на сервере — tmux нужен на сервере, а не на твоём ноутбуке.

Шаг 2. Создай именованную сессию

tmux new -s work

Экран очистится, внизу появится цветная полоска. Это значит, ты внутри tmux. Сессия называется work — имя пригодится, чтобы потом вернуться.

Здесь запускай то, что должно жить долго:

npm run build && npm run migrate

Шаг 3. Выйди, ничего не остановив

Вот главный трюк. Нажми Ctrl+B, отпусти, потом нажми D.

Ctrl+B — это «префикс»: он говорит tmux, что следующая клавиша — команда для него, а не для программы. D — detach, «отцепиться».

Ты снова в обычном терминале. А сессия work и всё, что в ней запущено, продолжают работать. Теперь можно закрыть SSH, ноутбук, уйти спать.

Важно: не выходи командой exit и не жми Ctrl+D. Это закроет саму сессию вместе с работой.

Шаг 4. Вернись к сессии

Снова зайди на сервер по SSH и посмотри, какие сессии живы:

tmux ls
# work: 1 windows (created Sat Nov 15 10:02:11 2026)

Подключись:

tmux attach -t work

Ты увидишь экран точно таким, каким он был: дописанный вывод, курсор, всё. Если сессия одна, хватит короткого tmux a.

Шаг 5. Раздели экран

Частый сценарий: слева работает сервер, справа ты смотришь лог. Внутри tmux:

  • Ctrl+B, потом % — разделить на левую и правую половины.
  • Ctrl+B, потом " — разделить на верх и низ.
  • Ctrl+B, потом стрелка — перейти в соседнюю панель.
  • Ctrl+B, потом Z — развернуть панель на весь экран и обратно.
  • Ctrl+B, потом X — закрыть панель (tmux спросит подтверждение).

В правой панели удобно держать tail -f, про это есть отдельный разбор — как смотреть лог в реальном времени.

Шаг 6. Прокрути вывод вверх

Первое, на чём спотыкаются: колесо мыши в tmux по умолчанию не листает историю. Есть два пути.

Быстрый: Ctrl+B, потом [. Включится режим просмотра — листай стрелками или PageUp. Выйти — клавиша Q.

Удобный навсегда: создай файл ~/.tmux.conf и добавь строку:

set -g mouse on

Примени без перезапуска: tmux source-file ~/.tmux.conf. Теперь колесо листает, а мышью можно выбирать панель. Если нужно выделить текст обычным способом — держи Shift во время выделения (в iTerm2 — Option).

Шаг 7. Заведи окна для разных задач

Панели делят один экран. Окна — это как вкладки браузера: каждое на весь экран, переключаешься между ними.

  • Ctrl+B, потом C — новое окно.
  • Ctrl+B, потом цифра — перейти в окно с этим номером. Номера видны в нижней полоске.
  • Ctrl+B, потом , (запятая) — переименовать окно, например в server или logs.

Удобная раскладка: окно server с запущенным проектом, окно logs с журналом, окно shell для разовых команд. Одна сессия держит всё сразу.

Когда работа закончена, сессию закрывают целиком: tmux kill-session -t work. Иначе она так и будет висеть в памяти сервера до перезагрузки — с запущенными в ней программами.

Что получится

Твой новый ритм работы на сервере выглядит так:

  1. ssh server
  2. tmux a — или tmux new -s work, если сессии ещё нет.
  3. Работаешь, запускаешь долгое.
  4. Ctrl+B, D — отцепился, закрыл ноутбук.
  5. Завтра: ssh server, tmux a — и всё на месте.

Особенно это выручает с агентами. Claude Code или Codex на сервере, запущенный в tmux, спокойно доделает задачу, пока ты едешь в метро. А потом ты подключишься с телефона через любой SSH-клиент и увидишь результат.

Чем tmux отличается от nohup?

nohup только защищает команду от разрыва, но вернуться к ней и что-то ввести уже нельзя — остаётся читать файл с выводом. В tmux ты возвращаешься в живой терминал: можно ответить на вопрос программы, нажать Ctrl+C, продолжить работу.

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

Нет. tmux живёт в памяти, и перезагрузка закроет все сессии. То, что должно работать неделями и подниматься само, оформляй демоном через systemd.

Почему Ctrl+B не срабатывает?

Чаще всего ты жмёшь клавиши одновременно. Префикс работает по очереди: Ctrl+B, отпустил, потом вторая клавиша. Ещё одна причина — ты уже внутри tmux и запустил tmux снова; вложенные сессии лучше не плодить.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →