2011-11-30 126 views
0

我有一个应用程序在无头服务器上运行。它是一个Web应用程序,但对于某个功能(调试)它运行基于swing的应用程序。由于服务器是无头的(我已经设置了-Djava.awt.headless = true)它在启动时会引发异常...X11从无头服务器到另一台X11服务器

我试过安装Xvfb,但那并不能解决我的问题因为Xvfb没有GUI输出,我看不到输出。

所以我想重定向/转发该服务器的输出到另一个(例如我的笔记本电脑),以便看到摆动应用程序和调试它。

是否有任何方式使用DISPLAY变量或其他任何方式实现它?

谢谢。

回答

1

如果您的笔记本电脑上正在运行X服务器,您可以在SSH中启用X转发功能将SSH服务器SSH入您的服务器,它会自动将您的DISPLAY变量设置为10.0行,并且可以运行将GUI导出到本地X服务器的应用程序。

否则,如果您想手动设置DISPLAY,您需要确保服务器可以通过x服务器端口上的直接TCP连接来连接到您的笔记本电脑。

0

您可以

  1. 运行的Xvnc并使用VNC客户端与x11vnc连接到它
  2. 运行的Xvfb在一起并使用VNC客户端连接到它(这是从上面,但最终的结果不同对你来说是相同的,有益的,只有你已经为一些其他的原因而运行的Xvfb)
  3. 使用X11会话的SSH转发(或直接TCP连接)按favoretti的答案

的Opti如果在笔记本电脑上安装了Windows并且不想在其上运行X11服务器,则1或2是有用的。然后您可以使用Windows本机VNC客户端。

您也可以使用RDP而不是VNC(X11端为X11rdp或xrdp,Windows端为RDP客户端)。这应该会提供更快的刷新率,但在X11方面设置起来应该很难(我个人还没有做过)。 OTOH Windows有一个内置的RDP客户端,所以你甚至不需要在Windows端安装任何东西。

如果你有X11上你的笔记本电脑,它更容易使用选项3

1

我没有足够的“声誉”上的其他用户的回答进行评论,所以我的帖子是用于扩增目的“ favoretti“的回答很好。

如果您正在运行Windows PC,请安装cygwin unix子系统并安装x-windows和ssh。如果使用OSX启动X11或Mavericks,请安装xQuartz。

然后提到你可以ssh到目标(无头)远程服务器,并指定-X标志,让X流量回来过线

ssh -l <user> -X -v <host> 

您可能会或可能不会有调用命令

xhost + 

允许X流量回流到您的机器。

相关问题