如何从另一个终端远程分离屏幕

Man*_*ist 4 command-line gnu-screen terminal tty

所以我面前有 2 个终端打开;

  1. /dev/pts/1 - '控制器'
  2. /dev/pts/2 - '接收者'

我目前使用ttyecho从/ PTS1执行命令中/ PTS2。
我可以列出屏幕 -ttyecho -n /dev/pts/2 screen -ls从 /pts1 很好,并在 /pts2 中查看结果。
我可以ttyecho -n /dev/pts/2 screen -x [blah]从 /pts1 上的 /pts2 很好地连接到屏幕..但是我不能做的是,当连接到屏幕时,然后从它分离。

因此,如果 /dev/pts/2 然后在屏幕内,我试图通过使用 /dev/pts1 中的 ttyecho 执行命令来与其分离

我试过发送...

ttyecho -n /dev/pts/2 ^a+d  
ttyecho -n /dev/pts/2 screen -d -r 
ttyecho -n /dev/pts/2 screen -D -RR
ttyecho -n /dev/pts/2 screen -d -r
ttyecho -n /dev/pts/2 screen -DRi
ttyecho -n /dev/pts/2 Ctrl+a+d
ttyecho -n /dev/pts/2 Ctrl+a d
ttyecho -n /dev/pts/2 CTRL + A
ttyecho -n /dev/pts/2 control+a
Run Code Online (Sandbox Code Playgroud)

所以我想我需要的是:

  • 我可以发送的命令将分离屏幕
  • 通过某种方式将某种伪键盘命令发送ttyecho到另一个屏幕以将其分离。

任何帮助最受赞赏。

小智 5

你可以做

$ screen -ls
Run Code Online (Sandbox Code Playgroud)

这将列出所有这样的屏幕会话。

There are screens on:
        8365.pts-6.vm2    (Attached)
        7317.pts-1.vm2    (Attached)
2 Sockets in /var/run/screen/S-root.
Run Code Online (Sandbox Code Playgroud)

然后您可以在屏幕 ID 的帮助下分离任何屏幕会话。

例如:

$ screen -d 8365
[8365.pts-6.vm2 detached.]
Run Code Online (Sandbox Code Playgroud)