Как пользоваться 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. Иначе она так и будет висеть в памяти сервера до перезагрузки — с запущенными в ней программами.
Что получится
Твой новый ритм работы на сервере выглядит так:
ssh servertmux a— илиtmux new -s work, если сессии ещё нет.- Работаешь, запускаешь долгое.
- Ctrl+B, D — отцепился, закрыл ноутбук.
- Завтра:
ssh server,tmux a— и всё на месте.
Особенно это выручает с агентами. Claude Code или Codex на сервере, запущенный в tmux, спокойно доделает задачу, пока ты едешь в метро. А потом ты подключишься с телефона через любой SSH-клиент и увидишь результат.
Чем tmux отличается от nohup?
nohup только защищает команду от разрыва, но вернуться к ней и что-то ввести уже нельзя — остаётся читать файл с выводом. В tmux ты возвращаешься в живой терминал: можно ответить на вопрос программы, нажать Ctrl+C, продолжить работу.
Переживёт ли сессия tmux перезагрузку сервера?
Нет. tmux живёт в памяти, и перезагрузка закроет все сессии. То, что должно работать неделями и подниматься само, оформляй демоном через systemd.
Почему Ctrl+B не срабатывает?
Чаще всего ты жмёшь клавиши одновременно. Префикс работает по очереди: Ctrl+B, отпустил, потом вторая клавиша. Ещё одна причина — ты уже внутри tmux и запустил tmux снова; вложенные сессии лучше не плодить.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





