我用的是屏幕屏幕视觉控制台。要分离屏幕,我需要按Ctrl+ A,然后按+ D,但有时会话会在未分离的情况下关闭。它显示(Attached)
为screen -list
:
eduard@eduard-X:~$ screen -list
There are screens on:
4561.pts-46.eduard-X (30.03.2015 14:48:51) (Attached)
4547.pts-46.eduard-X (30.03.2015 14:48:33) (Detached)
4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached)
3995.pts-30.eduard-X (30.03.2015 14:30:01) (Detached)
如果我尝试恢复它,屏幕会响应没有屏幕可恢复:
eduard@eduard-X:~$ screen -r 4329
There is a screen on:
4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached)
There is no screen to be resumed matching 4329.
我还可以恢复未正确分离的屏幕吗?
答案1
当然,与
screen -d -r
你可以选择哪个screen 通过查找带有 .screen 的 pid(或完整名称)来照常分离和重新连接screen -list
。
screen -d -r 12345
答案2
您应该创建带有名称的屏幕。
$ screen -S foo
$ screen -list
There are screens on:
16994.foo (03/30/15 14:05:13) (Detached)
20082.q (12/17/14 18:06:44) (Detached)
11008.w (11/12/14 10:52:43) (Detached)
1199.irc (11/12/14 01:34:40) (Detached)
然后你可以重新连接屏幕
$ screen -dr foo
(它将附加到 16994.foo,分离任何其他进程)或
$ screen -x i
(它将附加到 1999.irc,它将与另一个进程共享屏幕)
我觉得命名屏幕很重要。
答案3
根据我使用的帖子中建议的评论:
screen -x <session id>
从手册页:屏幕-x
-x
附加到未分离的屏幕会话。 (多显示模式)。屏幕拒绝从自身内部附着。 但多屏级联时,不会检测到循环;小心。
还研究了一下我发现了这个选项的其他用途,使用屏幕进行远程交互 解释说,您可以从多个终端进行连接,这是一种远程控制台共享系统,实际上您可以在共享环境中远程查看和键入。
这可以在教学生或与同事一起设置时使用。
您可以尝试从具有相同屏幕 ID 的两个不同终端连接到同一屏幕。( screen -x 4329
)。您在其中一个中输入的内容可以在另一个中看到,反之亦然。