跳到主要内容

主机资讯与使用指南

SSH 断开后继续运行程序:tmux 会话使用教程

在 VPS 使用 tmux 保存终端会话,完成创建、分离、恢复和查看,说明与长期服务管理的区别。

长时间任务放进 tmux 会话

通过 SSH 执行备份、同步或安装,网络断开后普通终端里的任务可能结束。tmux 在服务器上保留终端会话,本地重新连接后可以继续查看。

这是交互任务的会话工具。需要长期运行并在开机自动启动的程序,使用 systemd、Docker restart 策略或应用自己的服务配置。

安装并创建命名会话

sudo apt update
sudo apt install -y tmux
tmux new -s backup

命令按 Ubuntu/Debian 编写。backup 是本次会话名称,可改成容易识别的任务名。进入会话后再运行 rsync、备份脚本等命令。

分离之后继续运行

先按 Ctrl+B,松开,再按 D,分离当前会话。回到普通 SSH 终端后,可以关闭本地窗口,服务器上的 tmux 会话仍会保留。

不要输入 exit 来代替分离:exit 关闭当前 shell,可能结束会话及其任务。

重新连接并恢复

tmux ls
tmux attach -t backup

先看有哪些会话,再连接指定名称。提示 no sessions 时,检查是否使用了不同的 Linux 用户、服务器是否重启、任务是否已经退出。

tmux 会话属于启动它的用户。root 下的会话与普通用户的会话分开,不要因为列表为空就反复启动同一个任务。

查看结果与结束会话

任务完成后看命令退出状态和输出日志。确认不用保留终端,再在会话中 exit,或使用 tmux kill-session -t backup 结束指定会话。

服务器重启会终止 tmux 会话。需要断点续传的任务仍应使用 rsync 等支持再次执行的工具,tmux 本身不保存应用的业务进度。

相关阅读