解决使用 screen -r 恢复会话出现“There is a screen on: 2467.test (Attached) There is no screen to be resumed matching test.”错误解决方法

2023-10-11 网络技术 0

screen可以帮助我们在服务器上执行耗时操作(例如安装环境、FTP 等)时,防止因为意外断线导致任务中断的问题。在使用 screen -r 恢复会话时,出现了一个错误:There is a screen on: 2467.test (Attached) There is no screen to be resumed matching test.,本文分享下出现这个错误的原因和解决办法。

一、问题描述与分析

之前介绍过,在进行耗时操作时,我们可以用 screen -S命令开启一个新的窗口,例如 screen -S test,之后如果因为意外断线导致连接中断时,我们只需要重新 SSH 到服务器,使用 screen -r test恢复窗口即可。这里的 test 是窗口的名字。

在使用 screen -r恢复会话时,出现了这个错误,没有恢复成功:

There is a screen on:     2467.test (Attached)There is no screen to be resumed matching test.

根据错误的提示,test 这个窗口确实是存在的,但是处于被占用的状态(attached),这种情况可能是因为其它人正使用这个会话,或者之前因为 SSH 超时等原因导致会话未正常退出,所以无法再次进入。

二、问题解决办法

解决办法也很简单,我们需要使用 -d来把这个 screen 窗口给 detach 掉就行,例如我这里的命令需要改成:

screen -r -d 2467

其中 2467 是使用 screen -r提示的窗口编号。这样就能正常恢复这个窗口了。