资讯中心

screen——后台任务管理器

📅 2026/7/24 6:44:30
screen——后台任务管理器
如果你直接在一个普通的终端窗口里跑训练只要你把本地电脑合上、或者网络波动一下、或者网页不小心刷新了SSH 连接就会断开你的训练任务就会立刻中断前功尽弃而screen就是解决这个问题的。1. 一句话解释screen 是什么你可以把它想象成“服务器里的虚拟电脑桌面”。你通过 SSH 连上服务器打开了一个终端窗口。用了screen你相当于在这个终端里又打开了一个新的独立窗口。关键点当你断开 SSH 连接关掉电脑时那个独立的screen窗口不会关闭里面的程序会继续在服务器上运行。2. 最核心的 3 个命令① 创建一个新窗口开始干活screen -S 随便起个名字例如screen -S train意思是创建一个叫 train 的窗口。按回车后你的终端界面会瞬间清空变成一个全新的、干净的 shell 环境。这时候你就可以开始在里面运行python train.py了。② 暂时离开窗口放到后台运行当你已经在screen里面运行了训练代码怎么让它继续跑然后你断开连接在screen的界面里按以下组合键Ctrl A松开然后立即按一下D(小写字母 D)。(注这是两个步骤不是按Ctrl A D同时按是先按 CtrlA松开再按 D)你会看到类似[detached from 23105.train]的提示。此时你可以放心地关掉网页、合上电脑了。你的显卡会继续在后台全力跑你的代码。③ 重新连回原来的窗口查看进度当你下次再 SSH 连上这台服务器时需要看看训练跑得怎么样了输入screen -r 窗口名字例如screen -r train。你的终端界面会瞬间切回到刚才那个正在跑代码的画面你可以看到最新的 Loss 和 Epoch 进度。3. 遇到意外情况的“急救”命令有时候你可能会看到报错提示There is a screen on...意思是这个窗口已经开了但不在前台可能处于 Attached 状态。这时候正常用-r连不上。解决办法强制断开再连screen -d -r 窗口名字这个命令的意思是先强行把那个窗口“踢”下来然后再连上去。4. 如何查看现在有几个 screen 在跑screen -ls运行后会列出当前服务器上所有在后台运行的screen窗口和它们的 ID。5. 怎么彻底关掉一个 screen 窗口任务做完了当你看到训练跑到 100%或者发现代码写错了需要重新跑你需要把这个窗口彻底关掉清理掉。方法一推荐在screen里面直接敲exit然后按回车。方法二按下Ctrl A松开再按一下KKill 的意思然后按y确认关闭。