直接配置 tmux-resurrect 和 tmux-continuum 插件即可实现服务器重启后自动恢复 tmux 会话,包括窗口、窗格布局、工作目录及正在运行的命令(如 vim、conda activate、tail -f 等)。

直接配置 tmux-resurrect 和 tmux-continuum 插件,就能让服务器重启后自动恢复 tmux 会话——包括所有窗口、窗格布局、工作目录,甚至正在运行的命令(如 vim、conda activate、tail -f 等)。
安装插件管理器和核心插件
确保已安装 tmux(≥1.9),然后执行以下步骤:
- 克隆插件管理器 tpm 到标准路径:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm - 克隆两个必需插件:
git clone https://github.com/tmux-plugins/tmux-resurrect ~/.tmux/plugins/tmux-resurrectgit clone https://github.com/tmux-plugins/tmux-continuum ~/.tmux/plugins/tmux-continuum
配置 ~/.tmux.conf
在配置文件末尾添加以下内容(注意顺序:run -b 必须放在最后一行):
- 启用插件:
set -g @plugin 'tmux-plugins/tpm'set -g @plugin 'tmux-plugins/tmux-resurrect'set -g @plugin 'tmux-plugins/tmux-continuum' - 开启自动恢复(重启后首次启动 tmux 就加载):
set -g @continuum-restore 'on' - 保存 pane 内容(如 vim 缓冲区、命令历史、当前光标位置):
set -g @resurrect-capture-pane-contents 'on'
⚠️ 要求 shell 版本满足:bash ≥ 4.4 或 zsh ≥ 5.3 - (可选)延长自动保存间隔(默认 15 分钟,设为 60 分钟更省 IO):
set -g @continuum-save-interval '60' - 最后必须加这一行(触发插件初始化):
run -b '~/.tmux/plugins/tpm/tpm'
首次启用与验证
完成配置后,重载生效:
- 在任意 tmux 会话中按
Prefix + I(大写 i),等待插件自动安装完成 - 手动测试保存:
Prefix + Ctrl-s→ 查看~/.tmux/resurrect/下是否生成时间戳文件 - 手动测试恢复:
Prefix + Ctrl-r→ 检查窗口、窗格、目录、命令是否还原 - 重启服务器后,直接运行
tmux,观察是否自动进入上次状态
关键注意事项
有些情况会导致恢复不完整,需提前规避:
- 不要在
default-command中使用&&或||,否则面板内容可能无法捕获 - 若依赖 conda/virtualenv,确保环境激活命令是显式执行的(如
conda activate myenv),而非仅靠 shell 启动时自动加载 - 建议搭配
zsh(≥5.3)使用,对进程上下文还原更稳定 - 恢复后若发现某些程序未启动,可在
~/.tmux/resurrect/last文件中检查其原始命令,再通过@resurrect-processes显式声明


















