So starten Sie eine Anwendung remote, sodass die GUI lokal angezeigt wird

So starten Sie eine Anwendung remote, sodass die GUI lokal angezeigt wird

Das ist eine Anfängerfrage, ich weiß ... aber ich habe gesucht und bin langsam frustriert. Ich kenne mich mit Lunux ziemlich gut aus, aber mit XServer hatte ich noch nie zu tun.

Frage 1:

Ich melde mich per SSH von OSX als Benutzer Alpha bei einem UBUNTU 14.04-Desktopcomputer an.

Benutzer Alpha ist auf diesem Desktop auch lokal angemeldet.

Ich möchte (über mein Terminal) eine Anwendung ausführen, die auf dem UBUNTU-Computer angezeigt werden soll (so dass sie auf dem lokalen Display des lokal angemeldeten Benutzers sichtbar ist).

Heute erhalte ich diesen Fehler, wenn ich dies vom OSX-Terminal aus mache:

15:21:20:157 AWT-EventQueue-0: Error
java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation     which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
<etc>

HINWEIS: Wenn ich es vom lokalen Terminal (auf UBUNTU) aus mache, funktioniert es wie vorgesehen, es liegt also kein Fehler im Programm vor.

Frage 2:

Falls die UBUNTU-Maschine ohne Header wäre, wie würde ich die Fenster auf eine andere Maschine umleiten, beispielsweise meinen Mac?

Danke Peter

Antwort1

Zu Ihrer zweiten Frage: Fügen Sie bei der Verbindung per SSH den Parameter -X (oder -Y für eine vertrauenswürdige Verbindung) hinzu und stellen Sie sicher, dass Sie X11 auf Ihrem Mac haben. Beispiel:

ssh -X [email protected]

Dadurch werden Ihre X11-Fenster so umgeleitet, dass sie auf Ihrem lokalen X-Server auf Ihrem Mac angezeigt werden.

Sehen:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ssh.1.html

Zur ersten Frage:

DISPLAY und AUTORITÄT

Um eine Verbindung zu einem X-Display herzustellen, benötigt ein X-Programm zwei Informationen.

  • Es benötigt die Adresse des Displays, die normalerweise :0 ist, wenn Sie lokal angemeldet sind, oder :10, :11 usw., wenn Sie remote angemeldet sind (die Zahl kann sich jedoch ändern, je nachdem, wie viele X-Verbindungen aktiv sind). Die Adresse des Displays wird normalerweise in der Umgebungsvariable DISPLAY angegeben.

  • Es benötigt das Passwort für die Anzeige. X-Anzeigepasswörter werden Magic Cookies genannt. Magic Cookies werden nicht direkt angegeben: Sie werden immer in X-Autoritätsdateien gespeichert, die eine Sammlung von Datensätzen der Form „Anzeige :42 hat Cookie 123456“ sind. Die X-Autoritätsdatei wird normalerweise in der Umgebungsvariable XAUTHORITY angegeben. Wenn $XAUTHORITY nicht festgelegt ist, verwenden Programme ~/.Xauthority.

Extrahiert aus: https://unix.stackexchange.com/a/10126

In diesem Beitrag finden Sie eine ausführliche Erklärung.

Antwort2

Per Remote-Zugriff müssten Sie die zu verwendende Anzeige durch Exportieren der Umgebungsvariable DISPLAY festlegen.

z.B.export DISPLAY=:0

Zu Ihrer zweiten Frage: Der einfachste Weg wäre, einen VNC-Server auf Ubuntu einzurichten und mit einem VNC-Client eine Verbindung von Ihrem Mac aus herzustellen.

Wie man:http://www.howtoforge.com/wie-installiere-man-einen-vnc-server-auf-ubuntu-14.04

Antwort3

1) Ich bin nicht sicher, vielleicht versuchen export DISPLAY=0?

2) Um die GUI auf dem von Ihnen verwendeten Computer anzuzeigen, führen Sie SSH mit der -YOption aus.

verwandte Informationen