screen命令可创建独立于SSH的虚拟终端会话,实现进程持续运行与断线重连:安装后用screen -S命名新建会话,Ctrl+A+D分离,screen -ls查看,screen -r恢复,支持多窗口管理,exit退出。

如果您在远程SSH连接Linux服务器时,因网络波动或本地终端意外关闭导致会话中断,正在运行的命令(如编译、下载、服务启动等)会随之终止。screen命令可创建独立于SSH连接的虚拟终端会话,实现进程持续运行与会话断线重连。以下是使用screen命令保持SSH会话不断并管理后台窗口的具体操作:
一、安装screen工具
部分精简版Linux系统可能未预装screen,需手动安装以启用多会话功能。
1、检查screen是否已安装:执行 which screen,若无输出则表示未安装。
2、在CentOS/RHEL系统中执行:sudo yum install -y screen。
3、在Ubuntu/Debian系统中执行:sudo apt update && sudo apt install -y screen。
二、创建新的screen会话
通过命名新建会话,便于后续识别和恢复,避免多个匿名会话混淆。
1、执行命令启动带名称的新会话:screen -S mysession。
2、此时进入全新终端环境,提示符不变,但已处于screen会话中。
3、可运行任意长时间任务,例如:tail -f /var/log/syslog 或 wget https://example.com/largefile.iso。
三、分离当前screen会话
分离操作使screen会话在后台持续运行,同时释放当前终端供其他用途,SSH连接可安全关闭而不影响任务。
1、按下快捷键 Ctrl + A,松开后再按 D(Detach)。
2、终端显示类似 [detached from 12345.mysession] 的提示,表示已成功分离。
3、此时可退出SSH或关闭本地终端,后台任务仍在运行。
四、列出所有screen会话
查看当前系统中所有处于运行或分离状态的screen会话,获取其ID与名称以便恢复。
1、执行命令:screen -ls。
2、输出示例:There is a screen on: 12345.mysession (Detached)。
3、若显示 No Sockets found in /var/run/screen.,说明无活动screen会话。
五、恢复指定screen会话
根据会话名称或ID重新连接到已分离的screen环境,继续操作原任务。
1、执行恢复命令:screen -r mysession(使用名称)。
2、若存在多个同名会话或仅知PID,可用:screen -r 12345(使用会话ID)。
3、若会话正被其他终端占用,强制接管执行:screen -d -r mysession。
六、在screen内进行窗口管理
单个screen会话支持创建多个内部窗口,实现多任务并行且不依赖额外SSH连接。
1、在screen会话中,按下 Ctrl + A 后按 C 创建新窗口。
2、切换至下一个窗口:Ctrl + A 后按 N;切换至上一个窗口:Ctrl + A 后按 P。
3、查看窗口列表:Ctrl + A 后按 W,显示编号与标题。
七、退出screen会话并终止进程
当任务完成且无需保留会话时,应正常退出screen以释放系统资源,避免残留会话累积。
1、在screen会话中,直接输入 exit 命令或按 Ctrl + D 关闭当前窗口。
2、若为最后一个窗口,screen会话自动终止,返回原始shell。
3、确认会话已消失:再次执行 screen -ls,不应再出现对应条目。










