Mac怎么用screen管理终端会话_Mac如何用screen保持远程会话断开后不中断【方法】

夏芳姑娘_2953

夏芳姑娘_2953

2026-03-23

1032人浏览

原创

screen可解决SSH中断导致任务终止问题:一、用screen -S命名会话;二、Ctrl+a+d分离;三、screen -ls查看、screen -r恢复;四、Ctrl+a+c建多窗口;五、screen -d-r强制接管。

mac怎么用screen管理终端会话_mac如何用screen保持远程会话断开后不中断【方法】

如果您在 macOS 上通过 SSH 连接远程服务器执行长时间任务,但网络波动或本地休眠导致连接中断,任务随之终止,则很可能是前台进程收到了 SIGHUP 信号。screen 通过构建独立于终端的守护进程与虚拟终端环境,使会话脱离物理连接约束。以下是多种可行的操作方法:

一、启动并命名新 screen 会话

为便于识别和后续恢复,建议始终使用自定义名称创建会话,避免默认无名会话带来的管理混乱。命名会话还能防止多个用户或脚本误操作同一会话。

1、打开 Mac 终端,确保已安装 screen。若未安装,运行 brew install screen 完成部署。

2、输入命令 screen -S mybackup,其中 mybackup 可替换为任意有意义的英文名称。

3、确认进入新会话后,终端提示符无明显变化,但此时所有运行的命令(如 tar、rsync、python 脚本)均处于 screen 托管之下。

二、分离当前 screen 会话

分离操作不会终止任何正在运行的程序,仅将当前终端控制权交还给原始 shell,同时让 screen 守护进程持续托管所有子进程。

1、在 screen 会话中按下 Ctrl + a,松开后再按 d 键。

2、屏幕将显示类似 [detached from 12345.mybackup] 的提示,表明已成功分离。

3、此时可安全关闭终端窗口、断开 SSH 或合上 MacBook 盖子,后台任务不受影响。

三、列出并恢复指定 screen 会话

当存在多个 screen 会话时,必须先明确目标会话的 ID 或名称,才能准确恢复,避免接入错误会话导致误操作或输出混淆。

1、重新登录远程服务器后,运行 screen -ls 查看全部会话状态。

Codiga
Codiga

Codiga是一款面向 IDE 和 CI/CD 的实时静态代码分析与自动代码审查工具。

下载

2、输出中将显示类似 12345.mybackup (Detached) 的条目,括号内为当前状态。

3、输入 screen -r mybackup 即可直接恢复该命名会话;若名称冲突,则使用完整标识符,如 screen -r 12345.mybackup。

四、在会话内创建多窗口并切换

单个 screen 会话支持多个逻辑窗口,适用于同时监控日志、运行命令、编辑配置等场景,所有窗口共享同一会话生命周期,分离后全部持续运行。

1、在已附着的 screen 会话中,按下 Ctrl + a 后松开,再按 c 创建新窗口。

2、按下 Ctrl + a 后松开,再按 w 查看窗口列表,当前活动窗口标有星号(*)。

3、按下 Ctrl + a 后松开,再按 0~9 切换对应编号窗口,或按 n(下一个)、p(上一个)循环切换。

五、强制恢复已被占用的会话

当其他终端或 SSH 连接已附着到某一会话时,screen -r 将报错“There is a screen on...”;此时需采用强制方式接管,适用于独占调试或排障场景。

1、运行 screen -d -r mybackup,-d 参数先将原附着点分离,-r 紧接着恢复本终端控制权。

2、若仍提示冲突,可追加 -S 指定新会话名进行迁移: screen -S mybackup_new -d -r mybackup。

3、执行后原会话将被重命名为 mybackup_new,并立即附着至当前终端。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.04

17980

5

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

1263

5

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

2025.06.11

9630

9

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.07

3842

7

macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

2025.05.09

5644

14

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

20

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

0

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

20

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

120

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 207人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 21万人学习

好课诞生记
好课诞生记

共20课时 | 7.2万人学习