在Ubuntu上附加分离屏幕时出现混乱

屏幕清单显示

There are screens on: 9531.pts-0.ubuntu (03/02/2011 12:43:34 PM) (Detached) 2101.pts-0.ubuntu (03/02/2011 12:39:17 PM) (Attached) 2219.pts-0.ubuntu (03/02/2011 11:20:56 AM) (Attached) 3 Sockets in /var/run/screen/S-bond. 

但是当我键入

 screen -r 2101.pts-0.ubuntu There is a screen on: 2101.pts-0.ubuntu (03/02/2011 12:39:16 PM) (Attached) There is no screen to be resumed matching 2101.pts-0.ubuntu. 

在这里,我无法取回屏幕2101.pts-0.ubuntu,事实上我退出了。 我好像在这里

 screen -r 9531.pts-0.ubuntu [detached from 9531.pts-0.ubuntu] 

然后在上面你可以看到我在那个环节里面走了出来,我可以一次又一次地做到。但是其他环节却不一样呢? 那么我在做什么错误?

正如你可以从screen -list看到的那样,那个屏幕会话目前已经连接上了。 您不能从其他地方附加到它,而无需先将其分开。 您可以通过添加-d选项来完成此操作,例如screen -d -r 2101.pts-0.ubuntu 。 GNU屏幕手册中有更多的信息。 这是一个摘录:

-r [pid.tty.host]
-r会话所有者/ [pid.tty.host]
恢复一个独立的屏幕会话。 虽然可能需要[pid。] tty.host的可选前缀来区分多个分离的屏幕会话,但是可以指定其他选项(除-d / -D的组合外)。 第二种forms用于连接到以多用户模式运行的另一个用户的屏幕会话。 这表示屏幕应该在其他用户的目录中查找会话。 这需要setuid-root

-d | -D [pid.tty.host]
不启动屏幕,但分离其他地方运行屏幕会话。 它与屏幕控制terminal键入“Ca d”的效果相同。 -D等同于电源分离键。 如果没有会话可以分离,则忽略此选项。 结合-r / -R选项,可以实现更强大的效果:

-d -r重新连接一个会话,如有必要,先将其分开。

-d -R重新连接一个会话,如果有必要的话,先分离或创build它。

-d -RR重新连接会话,并在必要时分离或创build会话。 如果有多个会话可用,请使用第一个会话。

-D -r重新连接会话。 如有必要,先远程分离和注销。

-D -R附上这里和现在。 详细来说,这意味着:如果一个会话正在运行,然后重新附加。 如有必要,先远程分离和注销。 如果没有运行,请创build并通知用户。 这是作者的最爱。

-D -RR附上这里和现在。 无论如何,只要做到这一点。

-x附加到未分离的屏幕会话。 (多显示模式)。

注意:通过“screen-list”来检查会话状态总是一个好主意。

打电话叫医生!

 screen -dr 2101.pts-0.ubuntu