linux中screen用于管理持久化终端会话,使程序脱离ssh生命周期并保持交互状态;安装后用screen -s命名创建会话,ctrl+a+d分离,screen -ls查看、screen -r恢复,exit或ctrl+d退出销毁会话。

Linux 中用 screen 管理持久化终端会话,核心是让程序脱离当前 SSH 连接的生命周期——即使网络断开、终端关闭,任务也不中断。它不是后台运行那么简单,而是真正“保持会话状态”,恢复后还能继续交互。
安装 screen(多数系统已预装)
先确认是否可用:
- 执行
screen --version或which screen,有输出说明已就绪 - 若提示命令未找到,在 Ubuntu/Debian 上运行:
sudo apt update && sudo apt install screen - 在 CentOS/RHEL/Rocky/AlmaLinux 上运行:
sudo dnf install -y screen(新版)或sudo yum install -y screen(旧版)
创建命名会话并运行任务
避免匿名会话混淆,推荐始终带名字启动:
- 输入
screen -S download(比如下载任务),回车后进入新会话 - 此时终端清屏,但提示符不变,你已处于独立虚拟终端中
- 直接运行目标命令,例如:
wget https://example.com/bigfile.zippython3 train.pytail -f /var/log/nginx/access.log
安全分离会话(关键操作)
分离不是退出,是把控制权交还给当前终端,而会话和程序仍在后台持续运行:
- 按下 Ctrl + A(同时按,松开),再按 D(小写)
- 屏幕显示类似
[detached from 12345.download]即成功 - 此时可关闭 SSH、合上笔记本、切换网络,任务照常执行
查看与恢复会话
随时回来接管,就像从未离开过:
- 执行
screen -ls查看所有会话,输出形如:There is a screen on:12345.download (Detached) - 用名字恢复:
screen -r download - 若同名会话多个,或名字不唯一,用完整 ID 恢复:
screen -r 12345.download - 如果提示 “There is a screen on … Attached”,说明别人正连着,强制接管:
screen -d -r download
退出会话(任务完成后)
别只关终端,要真正结束会话释放资源:
- 恢复进会话后,在 shell 中输入
exit - 或直接按 Ctrl + D
- 看到
[screen is terminating]表示会话已销毁,进程终止











