Come avviare un software GUI su un PC Linux remoto tramite SSH


109

A volte ho bisogno di avviare XMBC media player o altri software GUI su uno dei miei PC (piccolo PC Xubuntu usato come media center).

Di solito lo faccio avviando un server X11vnc sul PC remoto tramite SSH e poi collegandomi con un client Xvnc al desktop Xfce.

C'è un modo per avviare un software GUI su un PC Linux remoto tramite SSH?

Grazie!


Può confermare che l'approccio nella risposta scelta funziona anche se il client remoto è un Mac. Lavorare con successo con macOS Sierra.
Benjamin R,

Risposte:


136

Sì. Devi solo eseguire export DISPLAY=:0(o qualunque sia il display remoto numerato come) nella tua sessione ssh e i programmi eseguiti verranno eseguiti sul display remoto. Un rapido esempio:

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

Firefox ora è in esecuzione sul timdisplay.

Tuttavia, quando si chiude la sessione SSH, la maggior parte delle volte l'applicazione remota verrà chiusa. Se vuoi disconnetterti da ssh ma lasci l'applicazione in esecuzione devi avviarla in modo speciale usando qualcosa come screen (mantiene la sessione ssh in esecuzione in background) o nohup, o un altro metodo. Per ulteriori informazioni su questo, recentemente è stata posta un'altra domanda .

Puoi abbreviare tutto in un comando che si collegherà, esporterà il display in linea e avvierà l'applicazione in un modo che non la chiuderà dopo la fine della sessione ssh:

ssh tim "DISPLAY=:0 nohup firefox"

Diceva No DISPLAY: this may not be what you want.quando l'ho provato (l'ho provato da abiword tra l'altro. `
PyRulez

1
@PyRulez Nota il "o qualunque sia il display remoto numerato come" nella prima riga. Se non è il primo server grafico potrebbe essere: 1 o superiore. Corri wper vedere chi ha effettuato l'accesso e dove. Questo ti dirà anche il numero DISPLAY.
Oli

1
Come posso disattivarlo di nuovo
Akabhirav

1
unset DISPLAY
Oli

7
a volte vuoi fare il contrario ed eseguire l'app X in locale semplicemente connettiti utilizzando -Y e quindi esegui la tua appssh -Y <remoteip>
Postadelmaga
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.