DevBug blog

О Linux, Java, разработке ПО и не только

Как сохранять сессии tmux между перезагрузками

2026-08-27 Linux

По умолчанию сессии tmux живут ровно столько, сколько работает сервер tmux. Перезагрузка машины, убитый сервер или его падение — и все окна, панели и раскладка пропадают безвозвратно. tmux-resurrect и tmux-continuum решают эту проблему: сохраняют состояние сессии на диск и восстанавливают его автоматически.

Устанавливаем TPM (Tmux Plugin Manager)

Если TPM ещё не установлен:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Убедитесь, что в самом конце ~/.tmux.conf есть строка:

run '~/.tmux/plugins/tpm/tpm'

Добавляем tmux-resurrect и tmux-continuum

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
  • tmux-resurrect отвечает непосредственно за сохранение и восстановление.
  • tmux-continuum автоматизирует процесс — периодически сохраняет состояние в фоне и восстанавливает его сразу при запуске tmux.

Перезагружаем конфиг и ставим плагины

Перезагружаем конфигурацию:

tmux source-file ~/.tmux.conf

Затем ставим новые плагины прямо из tmux: prefix + I (заглавная i). TPM склонирует оба репозитория в ~/.tmux/plugins/.

Сохранение и восстановление вручную

Даже с работающим continuum полезно знать штатные сочетания клавиш:

  • prefix + Ctrl-s — сохранить текущее состояние сессии
  • prefix + Ctrl-r — восстановить последнее сохранённое состояние

Где хранятся сессии

Сохранённое состояние лежит в ~/.tmux/resurrect/ в виде файлов с меткой времени, например tmux_resurrect_2026-08-27T10-15-00.txt, а символическая ссылка last всегда указывает на самый свежий снапшот:

ls -la ~/.tmux/resurrect/

Восстанавливаем и сессии vim/neovim

По умолчанию resurrect просто перезапускает программы, но не их внутреннее состояние. Чтобы он открывал именно сохранённую сессию vim/nvim (буферы, сплиты), а не просто запускал редактор заново:

set -g @resurrect-strategy-vim 'session'
set -g @resurrect-strategy-nvim 'session'

Для этого на стороне редактора нужен плагин для сессий (например, tpope/vim-obsession для Vim или rmagatti/auto-session для Neovim), который реально пишет файл сессии, откуда resurrect потом всё восстановит.

Важно

  • Автовосстановление continuum срабатывает только тогда, когда tmux запускается без уже открытых сессий — существующую сессию оно не тронет.
  • Интервал сохранения по умолчанию — 15 минут, меняется через @continuum-save-interval (в минутах).
  • Хорошо сочетается с set -g detach-on-destroy off — тогда панели переживают убийство сессии, а не весь сервер целиком.
  • Continuum не сохраняет то, что не может разумно восстановить: история шелла и переменные окружения внутри панели в снапшот не попадают, только рабочая директория и запущенная команда.
  • Перед чем-то рискованным (перезагрузка, обновление ядра) лучше сохраниться вручную через prefix + Ctrl-s, не полагаясь только на таймер.

Ссылки

macOS: как исправить ошибку «Malware Blocked» в Docker Desktop

2026-04-28 macOS Docker

После обновления macOS или Docker Desktop иногда появляется сообщение: «“com.docker.socket” was not opened because it contains malware». Это не настоящая малварь — это ложное срабатывание XProtect из-за несоответствия подписи кода в уже установленных вспомогательных бинарниках. Лечится заменой файлов на корректно подписанные из свежего бандла Docker.app.

Читать далее

Proxmox: расширение диска виртуальной машины с LVM

2026-02-19 Proxmox Home Lab

LVM (Logical Volume Manager) — это система управления дисками в Linux, которая добавляет гибкий уровень абстракции между физическими дисками и файловыми системами. В данной заметке рассмотрим, как расширить диск виртуальной машины в Proxmox, если внутри гостевой ОС используется LVM.

Читать далее

Proxmox: как конвертировать шаблон (template) в виртуальную машину

Иногда возникает необходимость конвертировать шаблон (template) обратно в виртуальную машину в Proxmox. Например, когда нужно обновить базовый образ или внести изменения в конфигурацию. Делается это достаточно просто через командную строку при помощи утилиты qm.

Читать далее

Linux: Не загружается Цитадель рейнджеров в Wasteland 2

2019-01-18 Linux Wasteland 2

В Linux версии игры Wasteland 2 есть один неприятный “баг”: локация Цитадель рейнджеров может не загружаться, либо процесс сохранения в данной локации происходит бесконечно долго. Причина проблемы - движок игры (Unity), который пытается загрузить несколько копий одних и тех же файлов. Для решения данной проблемы нужно изменить лимиты на количество одновременно открытых файлов.

Читать далее
Старые записи