Screen可让Linux长耗时任务在SSH断开后持续运行:启动screen新建会话,Ctrl+A+D分离,screen -ls查看、screen -r重连;支持-S命名、Ctrl+A+C建窗口、Ctrl+A+N/P切换;exit或Ctrl+D会终止会话,需用分离保活。

在Linux中运行长耗时任务(比如数据处理、模型训练、爬虫或服务部署)时,直接通过SSH执行命令,一旦网络中断或终端关闭,进程就会被终止。Screen 是一个轻量、稳定、无需额外依赖的终端复用工具,能让你把进程“装进”一个虚拟会话里,断开后仍后台持续运行,重连后还能恢复交互——非常适合服务器上的持久化任务管理。
安装与基础启动
多数主流发行版默认未预装 screen,但安装非常简单:
- Ubuntu/Debian:sudo apt install screen
- CentOS/RHEL/Fedora:sudo yum install screen 或 sudo dnf install screen
安装完成后,直接输入 screen 即可新建一个会话,终端提示符不变,但已进入独立会话环境。此时运行任何命令(如 python train.py 或 tail -f /var/log/syslog)都会在这个会话中持续执行。
分离(Detach)与重连(Attach)会话
这是 screen 实现持久化的关键操作:
- 按 Ctrl + A,松开后再按 D(即 Ctrl-A D),当前会话将“分离”——进程继续运行,你回到原始 shell,SSH 断开也不影响它;
- 重新登录后,用 screen -ls 查看所有存在的会话(如显示 12345.pts-0.host (Detached));
- 用 screen -r 12345(会话ID或完整名称)即可恢复到该会话,看到正在运行的输出和光标位置,就像从未离开过。
命名会话与多窗口管理
默认会话名是随机数字,不便于识别。建议启动时指定名称:
- screen -S download_task —— 创建名为 download_task 的会话;
- 进入会话后,按 Ctrl+A 再按 C 可新建一个窗口(类似标签页),Ctrl+A + N/P 切换前后窗口,Ctrl+A + " 查看窗口列表;
- 每个窗口可运行不同任务(如一个跑日志监控,一个跑脚本),互不干扰,且全部随会话持久化。
安全退出与清理
注意区分“分离”和“退出”:
- 在 screen 会话内输入 exit 或按 Ctrl+D,会彻底结束该会话及其中所有进程;
- 若只想临时离开,务必用 Ctrl+A D 分离,而非关闭终端或输入 exit;
- 不再需要的已终止会话(Dead 状态)可用 screen -wipe 清理残留记录。


















