2011-11-30 138 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流量回流到您的機器。

相關問題