我经常使用 GNU Screen。但是,我一直在试图弄清楚当我 ssh 时是否有办法让 X11 应用程序在屏幕上转发(这是一个词吗?)。目前,如果我尝试通过屏幕运行“gedit”,它会在我的“服务器”计算机上打开,而不是在我的客户端上。如果我在屏幕外做同样的事情,那么一切都很好。但是我也希望在使用屏幕时一切都好!
谢谢!
PS:我已经用谷歌搜索了这个问题,我看到提到了 xmove,但我似乎无法在我的 ubuntu 上找到包含 xmove 的包。(Ubuntu 10.10)
我经常使用 GNU Screen。但是,我一直在试图弄清楚当我 ssh 时是否有办法让 X11 应用程序在屏幕上转发(这是一个词吗?)。目前,如果我尝试通过屏幕运行“gedit”,它会在我的“服务器”计算机上打开,而不是在我的客户端上。如果我在屏幕外做同样的事情,那么一切都很好。但是我也希望在使用屏幕时一切都好!
谢谢!
PS:我已经用谷歌搜索了这个问题,我看到提到了 xmove,但我似乎无法在我的 ubuntu 上找到包含 xmove 的包。(Ubuntu 10.10)
要手动执行此操作,一旦您通过 SSH 登录,但在重新连接到屏幕之前,请检查您的 DISPLAY 环境变量:
重新连接到屏幕后,显式设置环境变量:
其中:N.0是
echo
附加之前显示的内容。这不会是完美的,因为某些应用程序可能希望与会话 D-Bus 通信,而通过 SSH 连接发送它有点复杂。存储库中有一个名为 xpra 的程序,它就像 x11 的 gnu 屏幕。使用起来并不难:
X 持久远程应用程序
Xpra 为您提供 GNU Screen for X 应用程序的功能。
它允许用户在他们的本地机器上查看远程 X 应用程序,并与远程机器断开连接和重新连接,而不会丢失正在运行的应用程序的状态。
Byobu 会自动重新附加 ssh 和 gpg 代理。如果这对您有帮助,我可以让它重新附加显示变量...
这就是我在运行 byobu 时的工作方式
在“_byobu_source..”行之前的.bash_login 中添加这一行:
然后将此行添加到.bashrc:
似乎问题在于屏幕会话中没有保留环境变量 XAUTHORITY。我通过将以下内容添加到我的 .bashrc 中解决了这个问题。我不认为这应该是必要的,但我想你做你必须做的:
我不认为这是最好的解决方案,或者最简洁的解决方案,但它确实有效。
FreeNX 是一款出色的远程显示器应用程序。
根据@harre 的建议,我发现这是最好的解决方案,至少对于通过 Putty 的 RHEL 而言。我知道有比创建一个保存 var 的文件更好的方法,但是这
X11
可以DISPLAY
通过gnu screen
.自动化解决方案
添加到
.bashrc
(或.bash_profile
,取决于您的用例)然后添加以下文件(或您的路径选择)