跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

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

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

如果您在mac OS 上通过 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查看全部会话状态。

Codex Mac Codex Mac 官方桌面版本深度适配 macOS 系统,具备强大的原生应用操控能力。它支持“锁屏操作(Locked Computer Use)”,能在电脑锁屏状态下后台自动执行任务;配合“目标模式(Goal Mode)”,可跨会话自主规划并完成复杂的长周期工程。安装后登录 ChatGPT 账号,即可体验从编码、调试到跨软件自动化的全链路智能开发工作流。

下载

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,并立即附着至当前终端。

相关文章