我可以将正在运行的应用程序移动到不同的 X 服务器吗?

我可以将正在运行的应用程序移动到不同的 X 服务器吗?

有没有办法在通过 SSH 使用 X11 转发时打开图形程序(例如 gedit)并将 X 服务器连接传输回 SSH 主机上的 X 服务器?

答案1

如果您查看有关该主题的维基百科页面,则会提到几个应用程序。

X移动

摘抄

xmove 是一个计算机程序,允许 X Window 系统应用程序在不同显示器之间移动,以及 X 服务器重新启动后 X 应用程序的持久性。 [4]它解决了 X 设计中的一个问题,即 X 客户端(X 应用程序)在其生命周期内与其启动的 X 服务器(X 显示)绑定在一起。另外,如果 X 服务器关闭,客户端应用程序将被迫停止运行。

xmove 允许客户端与当前的 X 服务器断开连接,并随时连接到新的服务器。转换对于客户端来说是完全透明的。 xmove 的工作原理是充当客户端和服务器之间的代理。它是一个“伪服务器”,它存储足够的服务器状态,以便客户端可以连接到新服务器而不会中断。

X普拉

摘抄

xpra 或 X 持久远程应用程序是一个工具,它允许您通常在远程主机上运行 X 客户端,然后将其显示定向到本地计算机,而不会丢失任何状态。1

它与标准 X 转发的不同之处在于,它允许断开和重新连接,而不会中断转发的应用程序。它与 VNC 和类似的远程显示技术的不同之处在于,xpra 是无根的:即,由 xpra 转发的应用程序在您的桌面上显示为由窗口管理器管理的普通窗口,而不是全部“一起困在一个盒子里”。 Xpra 还使用一种自定义协议,该协议具有自调整功能并且对延迟相对不敏感,因此可以在比标准 X 更差的链路上使用。

吉维克

摘抄

guievict 是一个计算机程序,它使 X Window 的 XFree86 实现的任何应用程序的 GUI 能够透明地迁移或复制到另一个显示器上。与某些提供类似功能的程序不同,它既不需要预先安排步骤(例如重新链接应用程序二进制文件),也不需要像 xmove 那样通过代理重定向应用程序进程的窗口系统通信。

Guievict 基于一个小型 X 服务器扩展,使应用程序能够从 X 服务器检索其窗口状态,以及在运行时注入到应用程序进程中的 GUI 迁移功能库。代码注入或运行时代码修补可以通过 DynInst API 完成。但是,guievict 包含自己的实现,以避免要求用户安装 DynInst。

在这 3 个中,Guivict 听起来像是您正在寻找的,主要是它可以检查 X 应用程序 AppX 的状态并将其迁移到另一个可以恢复的 X 服务器。

相关内容