在 GNU 屏幕会话之间移动窗口

Wil*_*rin 11 window-manager session window gnu-screen

有没有办法在不同的屏幕会话之间移动窗口?

例如,假设我有这个场景:

screen -S screen1
vim *.cpp
C-a d
screen -S screen2
Run Code Online (Sandbox Code Playgroud)

有什么办法可以将包含我的 vim 会话的 shell 从 screen1 移动到 screen2 吗?

ask*_*cki 5

您可以使用 injcode 在 tty 之间移动进程。要移动带有 PID 的进程,请在目标屏幕窗口中运行:

$ injcode -m retty PID
Run Code Online (Sandbox Code Playgroud)

但是,当您关闭父 Screen 会话时,移动的进程也将终止。

编辑:我错了,它有效。一切都在这里描述了。假设您要移动“htop”并且只有一个实例正在运行:

$ injcode -m retty $(pgrep htop)
$ pkill -SIGSTOP htop
$ pkill -SIGCONT htop
Run Code Online (Sandbox Code Playgroud)

然后在之前的 shell 类型上:

$ disown
Run Code Online (Sandbox Code Playgroud)