如果我进入机器,如果我启用X11转发,我可以运行图形应用程序 - 我运行 gedit 从命令行,gedit弹出窗口。我的问题是:有没有办法为已经运行的应用程序弹出一个窗口?
示例:假设我有两台机器,A和B.我在A上打开gedit,然后输入 some text 然后离开。然后我从B进入A.如果我跑了 gedit 我只会产生另一个进程。我可以访问已经运行的gedit进程(使用 some text )?或者这是vnc的工作吗?
如果我进入机器,如果我启用X11转发,我可以运行图形应用程序 - 我运行 gedit 从命令行,gedit弹出窗口。我的问题是:有没有办法为已经运行的应用程序弹出一个窗口?
示例:假设我有两台机器,A和B.我在A上打开gedit,然后输入 some text 然后离开。然后我从B进入A.如果我跑了 gedit 我只会产生另一个进程。我可以访问已经运行的gedit进程(使用 some text )?或者这是vnc的工作吗?
Answers:
字面意思并不是“抓住已经运行的程序窗口”的解决方案,但仍然......
使用 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。在该服务器上运行的任何应用程序都将显示在本地屏幕上。
xpra,见下面的答案。