LinuxNotes
← Все статьи

Tmux: сохраняем терминальные сессии на сервере

Создаём сессии, делим окно на панели и возвращаемся к работе после разрыва SSH.

Терминал и автоматизация3 мин чтения

Зачем нужен tmux

Tmux держит терминальную сессию на машине, где он запущен. Если соединение SSH оборвётся, программа внутри сессии обычно продолжит работу. Перезагрузка сервера или завершение процесса tmux прервёт эту работу: это не замена systemd для постоянных служб.

На Arch и CachyOS:

sudo pacman -Syu tmux

Если работаете по SSH, устанавливайте и запускайте tmux на удалённой машине, где должны выполняться задачи.

Создайте именованную сессию

tmux new -s work

Вы окажетесь в обычной оболочке с нижней строкой состояния. Можно запустить редактор или наблюдение за журналом. Перед служебной командой нажмите Ctrl+B, отпустите обе клавиши и затем нажмите нужную клавишу.

Отсоединение и возвращение

Нажмите Ctrl+B, затем D. Сессия останется работать в фоне.

tmux ls
tmux attach -t work

Первая команда показывает список сессий. Вторая возвращает в work. Если после разрыва соединения сессия отсутствует, проверьте, тот ли пользователь и сервер используются. Сообщение об отсутствии сервера tmux означает, что активных сессий нет.

Окна и панели

Сочетание после Ctrl+BДействие
CСоздать окно
NСледующее окно
PПредыдущее окно
%Разделить на левую и правую панели
”Разделить на верхнюю и нижнюю панели
СтрелкаПерейти в соседнюю панель
[Режим просмотра истории

Для выхода из режима истории нажмите Q. Символ % на некоторых раскладках требует Shift. Клавиши C, N, P здесь обозначают сами буквы без Ctrl.

Минимальная конфигурация

Добавьте в ~/.tmux.conf:

set -g mouse on
set -g history-limit 10000

Первая настройка включает работу мышью, вторая увеличивает историю новых панелей. Загрузите файл внутри сессии:

tmux source-file ~/.tmux.conf

Если история содержит секреты, учитывайте, что большой буфер удерживает их дольше. Пароли не передавайте в аргументах команд.

Завершение

Команда exit закрывает оболочку текущей панели. После закрытия последней панели сессия завершится. Перед этим убедитесь, что нужные процессы остановлены и файлы сохранены.

Для постоянной автоматизации: systemd timers.

Документация: tmux Getting Started.

Читайте дальше