X11转发 - 抓取已经运行的程序窗口


1

如果我进入机器,如果我启用X11转发,我可以运行图形应用程序 - 我运行 gedit 从命令行,gedit弹出窗口。我的问题是:有没有办法为已经运行的应用程序弹出一个窗口?

示例:假设我有两台机器,A和B.我在A上打开gedit,然后输入 some text 然后离开。然后我从B进入A.如果我跑了 gedit 我只会产生另一个进程。我可以访问已经运行的gedit进程(使用 some text )?或者这是vnc的工作吗?


问题是,一旦应用程序打开与X服务器的连接,您就无法重定向该连接。所以你必须事先引入一种重定向方法,例如:同 xpra,见下面的答案。
dirkt

Answers:


5

字面意思并不是“抓住已经运行的程序窗口”的解决方案,但仍然......

使用 xpra

在X11上,它也被称为X11的屏幕:它允许您运行程序,通常是在远程主机上,将它们的显示器指向本地机器,然后断开与这些程序的连接并从相同或另一台机器重新连接,失去任何国家。

[...]

Xpra还允许转发声音,剪贴板和打印服务。   可以通过SSH访问会话,也可以通过带有或不带SSL的纯TCP套接字来保护密码。

它必须事先安装,配置和启动,就像 screen 要么 tmux 用于控制台应用。你必须通过运行你的程序 xpra 首先,你可以做到(重新)连接不同机器的魔力。

xpra 可用 xpra 至少在Debian和Ubuntu中打包。我用了几次。性能优于普通X转发。

例子是 这里 。以下是来自 man xpra 在我的Kubuntu上:

xpra start :7

开始吧 xpra 服务器使用显示号码 :7

DISPLAY=:7 firefox

开始 firefox 在里面跑 xpra 服务器。在主机上运行它 xpra 已启动或在终端转发 xpra。在您附上之前不会出现任何窗口 xpra attach

你在A上运行上面的例子。然后你可以直接从A:

xpra attach :7

附上 xpra 使用本地显示号码的服务器 :7。在该服务器上运行的任何应用程序都将显示在屏幕上。

或者从你的B:

xpra attach ssh:foo@frodo:7

使用 ssh 附加到 xpra 在机器上运行的服务器 frodo 作为用户 foo 并使用显示 :7。在该服务器上运行的任何应用程序都将显示在本地屏幕上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.