GNU Screen:重新附加所有先前分离的会话

10

我在一个单一的 screen 会话中有几个窗口,然后我想要分离我的会话。这没有问题。

但是我找不到一种方法来恢复我之前分离的所有窗口。我可以看到可以通过ID只恢复一个窗口。

但是如何重新附加完全相同的会话环境并带有其中所有的窗口呢?

--

更新:

如果我输入 screen -d -r,它显示:

There are several suitable screens on:
    21074.pts-7.atx (05/29/2010 02:26:32 PM)    (Attached)
    3420.pts-3.atx  (05/29/2010 12:16:41 AM)    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

我该如何重新连接它们?

2个回答

22

screen -d -r : 重新连接一个会话,如果需要的话,先断开当前终端与之前会话的连接。

这将重新连接您的旧会话及其所有窗口。如果您的会话仍未断开连接,则会在将其连接到当前终端之前分离它。这在例如您将屏幕会话保留在另一台计算机上的 ssh 终端中时非常有用。


Tonio,请查看问题的更新。我在这里犯了什么错误? - BinaryButterfly
2
在你的更新中,屏幕显示无法重新附加会话,因为它不知道要重新附加哪个:有两个。 它甚至向您提供了如何选择一个或另一个会话的历史记录(当您不提供会话ID时,它期望只有一个会话,并使用该会话)。这里第一个已经附加,而第二个已分离。尝试使用 screen -r 3420.pts-3.atx 将其重新附加到当前终端。 - tonio
我现在明白了。谢谢你,Tonio! - BinaryButterfly

1

为了重新连接 所有 先前分离的会话,我使用这个小脚本。

#!/bin/sh
for line in `screen -ls | grep Detached |  awk '{print $1}'`; do
   xdotool key control+shift+t type "screen -r $line"
   xdotool key KP_Enter
done

"control+shift+t" 在我的终端中是打开新标签页的快捷键,你的快捷键可能不同。"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接