AutoDL 服务器训练必备:tmux 后台训练完整指南(新手版)
tmux是 Linux 下的一个终端会话管理工具。普通终端关闭 → 程序停止tmux 会话关闭 → 程序继续运行深度学习训练AutoDL 云服务器SSH 远程开发长时间运行任务tmux 的核心其实只有一句话:“退出终端,但不退出程序。Ctrl + BD你就已经超过很多刚接触 Linux 服务器的新手了。
在使用 AutoDL、Linux 服务器或者远程 GPU 训练模型时,很多新手都会遇到一个问题:
关闭网页、断开 SSH、VSCode 掉线之后,训练直接中断。
这时候,tmux 就是最实用的工具之一。
它可以让训练任务在后台持续运行,即使你退出终端、关闭浏览器,模型依然会继续训练。
这篇文章会带你从 0 开始掌握 tmux 的核心使用方法。
一、什么是 tmux?
tmux 是 Linux 下的一个终端会话管理工具。
简单理解:
- 普通终端关闭 → 程序停止
- tmux 会话关闭 → 程序继续运行
因此,它特别适合:
- 深度学习训练
- AutoDL 云服务器
- SSH 远程开发
- 长时间运行任务
二、安装 tmux
如果你的服务器提示:
tmux: command not found
说明系统还没安装 tmux。
先执行:
apt update
apt install -y tmux
安装完成后检查版本:
tmux -V
如果输出类似:
tmux 3.2a
说明安装成功。
三、创建 tmux 会话
进入你的项目目录:
cd ~/autodl-tmp/Pytorch-UNet-master
创建一个名为 train 的 tmux 会话:
tmux new -s train
进入之后,你会发现终端底部多出一条状态栏。
这说明你已经进入 tmux 环境。
四、在 tmux 中启动训练
普通训练命令:
python train.py \
--epochs 120 \
--batch-size 16 \
--lr 1e-4 \
--num-workers 8 \
--no-wandb
如果你要训练增强版 SwinIR-Denoise-UNet:
python train.py \
--epochs 120 \
--batch-size 12 \
--lr 1e-4 \
--num-workers 8 \
--swinir-depths 0,0,1,1,2 \
--no-wandb
这里建议新手先关闭 wandb:
--no-wandb
否则可能会出现:
- 登录问题
- 网络连接问题
- 训练卡住
- wandb 初始化失败
后续熟悉流程后再开启即可。
五、退出 tmux,但不中断训练(重点)
这是 tmux 最核心的功能。
按下:
Ctrl + B
松开后,再按:
D
你会看到类似:
[detached from train]
这表示:
- 你已经退出 tmux
- 但训练仍在后台运行
此时即使:
- 关闭网页
- 断开 SSH
- VSCode 掉线
训练也不会停止。
六、重新连接训练会话
查看当前所有 tmux 会话:
tmux ls
例如:
train: 1 windows
重新进入训练窗口:
tmux attach -t train
简写:
tmux a -t train
进入后,你会重新看到训练日志。
七、结束 tmux 会话
很多新手第一次用 tmux 时都会发现:
我已经退出终端了,但训练还在跑,该怎么停掉?
这里分几种情况。
方法 1:在 tmux 内直接停止(推荐)
重新进入训练窗口:
tmux attach -t train
然后按:
Ctrl + C
这会中断当前正在运行的训练程序。
你会看到类似
KeyboardInterrupt
说明训练已经停止。
这是最标准、最安全的停止方式。
方法 2:直接关闭 tmux 会话
如果你不想重新进入训练窗口,也可以直接杀掉整个 tmux 会话:
tmux kill-session -t train
这会:
- 结束 tmux
- 停止里面所有程序
- 包括训练任务
适合:
- 训练卡死
- 不想保留当前会话
- 后台程序太多
方法 3:强制结束 Python 训练进程(进阶)
先查看 Python 进程:
ps -ef | grep train.py
例如:
root 12345 1 99 python train.py
其中:
12345
就是进程 PID。
强制结束:
kill -9 12345
这样可以直接杀掉训练进程。
适用于:
- tmux 卡死
- 无法 attach
- GPU 被异常占用
- 程序失控
查看 GPU 是否还在运行
停止训练后,可以检查 GPU:
nvidia-smi
如果训练已经结束:
- GPU 占用会下降
- Python 进程会消失
推荐的新手停止流程
最推荐的方法:
tmux attach -t train
然后:
Ctrl + C
最后:
exit
这是最规范的结束方式。
训练完成后,可以直接在 tmux 中输入:
exit
或者在外部终端强制关闭:
tmux kill-session -t train
八、tmux 常用命令速查
会话管理
tmux new -s train # 创建 train 会话
tmux ls # 查看所有会话
tmux attach -t train # 进入 train 会话
tmux a -t train # attach 简写
tmux kill-session -t train # 删除会话
tmux 内部快捷键
先按:
Ctrl + B
再按对应按键。
后台运行(最重要)
Ctrl + B,然后 D
退出但不中断程序。
新建窗口
Ctrl + B,然后 C
切换窗口
Ctrl + B,然后 N
下一个窗口。
Ctrl + B,然后 P
上一个窗口。
分屏操作
左右分屏:
Ctrl + B,然后 %
上下分屏:
Ctrl + B,然后 "
关闭当前分屏:
Ctrl + B,然后 X
九、推荐的 AutoDL 实际训练流程
这是我个人最推荐的新手训练流程。
进入项目:
cd ~/autodl-tmp/Pytorch-UNet-master
创建 tmux:
tmux new -s train
启动训练:
python train.py \
--epochs 120 \
--batch-size 16 \
--lr 1e-4 \
--num-workers 8 \
--no-wandb
后台挂起:
Ctrl + B
D
之后:
- 可以关闭网页
- 可以断开 VSCode
- 可以退出 SSH
训练依然会继续。
想查看训练状态时:
tmux attach -t train
即可重新进入。
十、为什么深度学习训练一定要学 tmux?
因为服务器环境并不稳定:
- VSCode 会断连
- SSH 会超时
- 浏览器会关闭
- AutoDL 页面会刷新
如果不用 tmux:
一断连,训练直接白跑。
而 tmux 几乎是:
- Linux 服务器
- AutoDL
- 深度学习训练
- AI 项目复现
的“必修技能”。
很多人第一次真正理解服务器后台训练,就是从 tmux 开始的。
总结
tmux 的核心其实只有一句话:
“退出终端,但不退出程序。”
只要掌握:
tmux new -s train
和:
Ctrl + B
D
你就已经超过很多刚接触 Linux 服务器的新手了。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)