Comment démarrer un logiciel d'interface graphique sur un PC Linux distant via SSH

109

Parfois, j'ai besoin de démarrer le lecteur multimédia XMBC ou un autre logiciel d'interface graphique sur l'un de mes PC (petit PC Xubuntu utilisé comme centre multimédia).

En général, je le fais en démarrant un serveur X11vnc sur le PC distant via SSH et en me connectant avec un client Xvnc au bureau Xfce.

Existe-t-il un moyen de démarrer un logiciel d'interface graphique sur un PC Linux distant via SSH?

Merci!

Raben
la source
Peut confirmer que l'approche dans la réponse choisie fonctionne si le client distant est également un Mac. Travailler avec succès avec macOS Sierra.
Benjamin R

Réponses:

136

Oui. Vous avez juste besoin d’exécuter export DISPLAY=:0(ou quel que soit le numéro de l’affichage distant) dans votre session SSH et les programmes exécutés seront exécutés sur l’affichage distant. Un exemple rapide:

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

Firefox est maintenant en cours timd’affichage sur.

Cependant, lorsque vous fermez votre session ssh, la plupart du temps, l'application distante se ferme. Si vous souhaitez vous déconnecter de ssh tout en laissant l'application en cours d'exécution, vous devez la lancer de manière spéciale en utilisant quelque chose comme écran (maintient la session ssh en arrière-plan) nohupou une autre méthode. Pour plus d'informations à ce sujet , une autre question a récemment été posée .

Vous pouvez abréger tout cela en une seule commande permettant de se connecter, d'exporter l'affichage en ligne et de démarrer l'application de manière à ne pas le fermer après la fin de la session ssh:

ssh tim "DISPLAY=:0 nohup firefox"
Oli
la source
Il a dit No DISPLAY: this may not be what you want.quand je l'ai essayé (je l'ai essayé d'abiword en passant. `
PyRulez
1
@PyRulez Notez le "ou quoi que l'affichage à distance soit numéroté comme" dans la première ligne. Si ce n'est pas le premier serveur graphique, il pourrait être: 1 ou supérieur. Exécuter wpour voir qui est connecté et où. Cela vous indiquera également le numéro d’AFFICHAGE.
Oli
1
Comment puis-je le désactiver
akabhirav
1
unset DISPLAY
Oli
7
Parfois, vous voulez faire le contraire et exécuter l'application X localement. Il vous suffit de vous connecter à l'aide de -Y, puis d'exécuter votre applicationssh -Y <remoteip>
Postadelmaga