训练进程与监控
如果你通过ssh登录或以ssh为基础的工具软件(比如XShell、PyCharm,VSCode等,可以用这类工具调试,但是最终长时间运行时请以守护进程的方式执行命令)进行远程执行程序时,那么请注意开守护进程来执行程序,避免因为SSH连接中断导致程序终止,遭受不必要的损失。
1. 后台训练与守护进程方式(防中断)
后台训练推荐使用会话管理工具或守护进程方式运行任务,常见方式包括:
- tmux(推荐)
- screen
- nohup / setsid
- JupyterLab 终端 / Notebook + 日志重定向
说明:tmux 与 screen 默认多数系统未预装,需要手动安装,安装命令如下:
sudo apt install -y tmux screen1.1 使用 tmux(推荐)
tmux 支持多窗口、多会话管理,稳定性高,适合长期训练任务。
创建新会话
tmux new -s train在会话中启动训练
python train.py临时离开会话(不中断任务)
Ctrl + B,然后按 D说明:部分终端(如 Web Terminal / JupyterLab 终端等)可能无法完整传递组合快捷键,或与宿主应用快捷键冲突,导致
Ctrl + B前缀与后续按键无法生效。若遇到此情况,可直接关闭当前终端窗口或标签页,tmux 会话仍会在后台保持运行;之后再通过tmux ls与tmux attach -t train重新连接。
查看所有会话
tmux ls重新连接会话
tmux attach -t train关闭当前会话
tmux kill-session -t train1.2 使用 screen
screen 功能与 tmux 类似,但维护性略弱,适合简单后台任务。
创建会话
screen -S train启动训练
python train.py离开会话
Ctrl + A,然后按 D查看会话
screen -ls恢复会话
screen -r train如果使用 screen 打开终端后出现中文乱码,可执行以下命令后重新进入 screen 终端解决:
echo "defencoding GBK" >> ~/.screenrc
echo "encoding UTF-8 GBK" >> ~/.screenrc如果 screen 仍出现乱码问题,也可以在新建/恢复时加上
-U参数:
# 新建
screen -U
# 恢复
screen -U -r xxx1.3 使用 nohup / setsid
nohup 适合简单后台运行场景,但不支持交互式管理。
推荐组合使用 setsid + nohup:
setsid nohup python train.py > output.log 2>&1 &查看输出日志
tail -f output.log注意:nohup 模式下无法重新进入交互环境,仅适合一次性任务。
1.4 使用 JupyterLab 终端 / Notebook
如果你是通过 JupyterLab 在浏览器中操作实例,也可以利用 JupyterLab 自身的特性来实现"后台运行、防中断"的效果,无需额外安装 tmux/screen。
1.4.1 JupyterLab 终端方式(推荐)
最简单的方式是通过 JupyterLab 自带的终端来执行训练命令:只要 JupyterLab 服务本身不重启(这种情况几乎不会发生),其终端进程就会一直在后台运行,不受本地主机断网或关机的影响。 
- 如果你不小心关闭了终端标签页,可以在 JupyterLab 左侧文件/任务栏中重新找回该终端会话。

- 重新打开终端标签后如果没有任何显示,按一下回车键即可恢复正常显示。
⚠️ 在使用 JupyterLab 终端长时间跑训练任务时,强烈建议对日志做重定向处理,防止断网或刷新页面后,中间产生的日志内容丢失:
# 将日志重定向到 train.log 文件,即在原命令后加上 > train.log 2>&1
python train.py > train.log 2>&1
# 实时查看日志(另开一个终端标签执行)
tail -f train.log2. 进程管理与资源监控命令
查看 GPU 状态
nvidia-smi实时刷新显存占用
watch nvidia-smi使用 nvtop 进行可视化监控(推荐)
nvtop 提供类 top 的 GPU 实时监控界面,更直观。
安装 nvtop(需手动安装)
sudo apt install -y nvtop启动监控
nvtop强制终止训练进程
kill -9 <进程ID>