gnu screen:重新连接所有以前分离的会话

时间:2010-05-29 16:44:19

标签: gnu-screen unix

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

但我无法找到恢复以前分离会话中所有窗口的方法。我可以看到我可以通过ID恢复其中一个。

但是如何重新连接其中所有窗口的相同会话环境?

-

Updated:

如果我输入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 个答案:

答案 0 :(得分:19)

screen -d -r : Reattach a session and if necessary detach it first.

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

答案 1 :(得分: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”恰好是我的终端中打开新标签的快捷方式,它可能是您的不同捷径。