So starten Sie eine GUI-Software auf einem entfernten Linux-PC über SSH

109

Manchmal muss ich einen XMBC Media Player oder eine andere GUI-Software von meinem PC starten (kleiner Xubuntu-PC, der als Media Center verwendet wird).

Normalerweise starte ich dazu einen X11vnc-Server auf dem Remote-PC über SSH und verbinde mich dann mit einem Xvnc-Client mit dem Xfce-Desktop.

Gibt es eine Möglichkeit, eine GUI-Software auf einem entfernten Linux-PC über SSH zu starten?

Vielen Dank!

Raben
quelle
Kann bestätigen, dass der Ansatz in der ausgewählten Antwort funktioniert, wenn der Remote-Client ebenfalls ein Mac ist. Erfolgreich mit macOS Sierra arbeiten.
Benjamin R

Antworten:

136

Ja. Sie müssen export DISPLAY=:0in Ihrer ssh-Sitzung nur ausführen (oder wie auch immer die Remote-Anzeige nummeriert ist), und die ausgeführten Programme werden auf der Remote-Anzeige ausgeführt. Ein kurzes Beispiel:

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox läuft jetzt auf timdem Display.

Wenn Sie jedoch Ihre SSH-Sitzung schließen, wird die Remoteanwendung die meiste Zeit geschlossen. Wenn Sie die Verbindung zu ssh trennen möchten, aber die Anwendung weiterhin ausführen möchten, müssen Sie sie auf besondere Weise über einen Bildschirm (der die ssh-Sitzung im Hintergrund ausführt) nohupoder über eine andere Methode starten . Für weitere Informationen hierzu gab es kürzlich eine weitere Frage .

Sie können dies alles in einem Befehl verkürzen, der eine Verbindung herstellt, die Anzeige inline exportiert und die Anwendung so startet, dass sie nach dem Abbruch der SSH-Sitzung nicht geschlossen wird:

ssh tim "DISPLAY=:0 nohup firefox"
Oli
quelle
Es hieß, No DISPLAY: this may not be what you want.als ich es ausprobiert habe (ich habe es übrigens von abiword ausprobiert. "
PyRulez
1
@PyRulez Beachten Sie in der ersten Zeile "oder was auch immer die Fernanzeige nummeriert". Wenn es nicht der erste Grafikserver ist, kann es sein: 1 oder höher. Laufen Sie, um wzu sehen, wer angemeldet ist und wo. Das wird Ihnen auch die DISPLAY-Nummer anzeigen.
Oli
1
Wie schalte ich es wieder aus
akabhirav
1
unset DISPLAY
Oli
7
Manchmal möchten Sie das Gegenteil tun und die X-App lokal ausführen. Verbinden Sie sich einfach mit -Y und führen Sie dann Ihre App ausssh -Y <remoteip>
Postadelmaga