我想远程看到一些正在运行的GUI应用程序而不杀死当前进程,我已经尝试过vnc和xrdp,xrdp打开一个新的空白会话,所以它不适合我,vnc很好,但不完全是我需要的,它使用屏幕和设备呈现,有人可能会弄乱我移动鼠标或在键盘上打字。
因此我想出了我能做的事情唯一的方法是将一个正在运行的X窗口从一个显示器转移到另一个显示器,因此即使在SSH -X(X11转发)上我也能看到它。 / p>
我正在进行这项任务很长一段时间,我没有找到一个确凿的解决方案,这就是我吸引你的原因。你能帮我解决这个问题吗?
谢谢,
答案 0 :(得分:4)
我自己从未使用过它,但Xpra似乎是常用的建议解决方案;你也可以考虑xmove。这两种方法都可以通过代理X客户端与其服务器的连接,并跟踪足够的状态,以便您可以在服务器之间切换代理服务器端连接并获得合理的结果。如果没有这样的代理,就像在“stock”X中那样,不可能将客户端与一个服务器断开连接并将其连接到另一个服务器,除非客户端是专门为支持这种行为而设计的。
答案 1 :(得分:1)
如果您查看关于该主题的维基百科页面,则会提到几个应用程序。
摘录
xmove是一个允许X Window移动的计算机程序 不同显示器之间的系统应用程序和持久性 X服务器上的X应用程序重新启动。[4]它解决了一个问题 X的设计,其中X客户端(X应用程序)与X绑定 服务器(X显示)它的生命周期一直在启动。另外,如果是X. 服务器关闭后,客户端应用程序被迫停止运行。
xmove让客户端与其当前的X服务器断开连接,并且 随时连接到新的。过渡是完全的 对客户透明。 xmove通过充当代理之间的工作 客户端和服务器。它是一个"伪服务器"哪个存储足够 服务器状态,以便客户端可以无需连接到新服务器 破坏。
摘录
xpra或X持久性远程应用程序是一个允许您使用的工具 通常在远程主机上运行X客户端,然后直接显示它们 到本地计算机而不会丢失任何状态。1
它与标准X转发的不同之处在于它允许断开连接 和重新连接,而不会中断转发的应用程序。它 与xpra中的VNC和类似的远程显示技术不同 是无根的:即,xpra转发的应用程序出现在你的 桌面作为由窗口管理器管理的普通窗口,而不是 全都被困在一个盒子里#34; Xpra也使用自定义 协调,自我调整和相对延迟不敏感,和 因此可用于比标准X更糟糕的链接。
摘录
guievict是一个支持任何GUI的计算机程序 应用XFree86实现X Window是透明的 迁移到或复制到另一个显示器上。不像某些程序 提供类似的功能,它既不需要预先安排 诸如重新链接应用程序二进制文件之类的步骤 重定向应用程序进程的窗口系统通信 通过像xmove这样的代理。
Guievict基于一个小的X服务器扩展,支持 应用程序从X服务器和a检索其窗口状态 注入的GUI迁移功能库 运行时的申请流程。代码注入或运行时 代码修补可以通过DynInst API完成。然而,guievict 包含自己的实现,以避免要求用户安装 DynInst。
其中3个,Guievict听起来像你正在寻找的,主要是它可以检查X应用程序AppX的状态并将其迁移到另一个可以恢复它的X服务器。
(此answer来自slix at unix.stackexchange)