Tmux для новичков: фоновые задачи по SSH без риска обрыва связи
Проблема внезапного обрыва SSH-сессии
Если вы запустили тяжелый SQL-дамп или компиляцию проекта прямо в окне SSH, и в этот момент пропал интернет или ноутбук уснул, сессия оборвется, послав сигнал SIGHUP. Процесс погибнет на середине. Утилита Tmux держит терминал открытым внутри сервера независимо от вашего подключения.
Шпаргалка по работе с Tmux
- Устанавливаем Tmux:
sudo apt install tmux -y - Создаем новую именованную сессию:
tmux new -s db_migration - Запускаем любую долгую команду (например, тяжелый скрипт).
- Отключаемся от сессии (Detach), оставляя её работать в фоне:
Нажмите сочетание клавиш Ctrl + B, отпустите и нажмите клавишу D. Вы вернетесь в обычную консоль, а скрипт продолжит выполняться. - Теперь можно смело закрывать окно терминала и выключать ПК.
- Подключение обратно к сессии на следующий день:
tmux attach -t db_migration
Чтобы посмотреть список всех активных фоновых сессий tmux, выполните команду: tmux ls.
Частые вопросы (FAQ)
Как полностью закрыть и уничтожить сессию tmux?
Внутри сессии введите команду exit или выполните снаружи: tmux kill-session -t имя_сессии.
Как прокручивать текст (скроллинг) внутри tmux?
Нажмите Ctrl + B, затем [ (квадратная скобка). Листайте стрелками. Для выхода из режима скролла нажмите q.
Чем tmux лучше утилиты screen?
Tmux современнее, стабильнее работает с разделением окон (split) и потребляет меньше ресурсов.
Как разделить окно терминала на две части?
Горизонтально: Ctrl + B затем " (кавычка). Вертикально: Ctrl + B затем % (процент).