Comment puis-je spécifier un affichage?

Lorsque je lance des programmes sur SSH, tels que firefox & , je reçois une erreur

 Error: no display specified 

Je voudrais ouvrir de nombreux affichages, montrant toujours la stdout de chaque programme.

Question initiale: Comment puis-je spécifier l’affichage pour obtenir un programme à plusieurs affichages?

Pablo Santa Cruz me donne le code suivant comme solution. Je ne comprends pas.

 $ export DISPLAY=yourmachine.yourdomain.com:0.0 $ firefox & 

Quelles sont vos yourmachine et yourdomain.com dans la commande?

Le fonctionnement de X est identique à celui de tout programme réseau. Vous avez un serveur d’une certaine description (dans ce cas, le serveur d’affichage X) qui s’exécute sur une machine spécifique, et vous avez des clients X (comme Firefox) qui tentent de se connecter à ce serveur pour afficher leurs informations.

Souvent (sur les machines “à la maison”), le client et le serveur fonctionnent sur le même boîtier et il n’y a qu’un seul serveur, mais X est suffisamment puissant pour que cela ne soit pas nécessaire. Il a été construit avec la séparation serveur / client intégrée dès le départ.

Cela vous permet de faire des choses merveilleuses telles que vous connecter à votre boîte (en mode texte) à mi-chemin sur la planète, lui dire que le serveur d’affichage est la boîte sur laquelle vous vous trouvez et que les fenêtres apparaissent soudainement localement.

Pour qu’un client puisse interagir avec un utilisateur, il doit savoir comment trouver le serveur. Il y a un certain nombre de façons de le faire. De nombreux clients autorisent l’option -display ou --display à le spécifier:

 xeyes -display paxbox1.paxco.com:0.0 

Beaucoup utiliseront la variable d’environnement DISPLAY si aucun affichage n’est spécifiquement indiqué. Vous pouvez définir cette variable comme n’importe quelle autre:

 DISPLAY=paxbox1.paxco.com:0.0; export DISPLAY # in .profile export DISPLAY=paxbox1.paxco.com:0.0 # in your shell DISPLAY=paxbox1.paxco.com:0.0 firefox & # for that command (shell permitting) 

La première partie de la variable DISPLAY est uniquement l’adresse de la machine serveur d’affichage. Il suit la même règle que toute autre adresse IP; il peut s’agir d’un nom DNS pouvant être résolu (y compris localhost ) ou d’une adresse IP spécifique (telle que 192.168.10.55).

La deuxième partie est spécifique à X. Il donne le numéro X “display” (serveur X) et le numéro d’écran à utiliser. Le premier (numéro d’affichage) fait généralement référence à un groupe de périphériques contenant un ou plusieurs écrans, mais avec un seul clavier et une seule souris (un stream d’entrée). Le numéro d’écran donne généralement l’écran spécifique au sein de ce groupe.

Un exemple serait:

 +----------------------------------------+ |paxbox1.paxco.com| | +-----------------+ | | | | +----------+----+ +----------+----+ | | |Display :0| | |Display :1| | | | +----------+ | +----------+ | | | | | | | | | | +-----------+ | | | | | | |Screen :0.0| | | | | | | +-----------+ | | | | | | +-----------+ | | | | | | |Screen :0.1| | | | | | | +-----------+ | | | | | | +-----------+ | | +-----------+ | | | | |Screen :0.2| | | |Screen :1.0| | | | | +-----------+ | | +-----------+ | | | | +-----------+ | | +-----------+ | | | | |Screen :0.3| | | |Screen :1.1| | | | | +-----------+ | | +-----------+ | | | | +-----------+ | | +-----------+ | | | | | Keyboard | | | | Keyboard | | | | | +-----------+ | | +-----------+ | | | | +-----------+ | | +-----------+ | | | | | Mouse | | | | Mouse | | | | | +-----------+ | | +-----------+ | | | +---------------+ +---------------+ | | | +----------------------------------------+ 

Ici, vous avez une seule machine ( paxbox1.paxco.com ) avec deux serveurs d’affichage. Le premier a quatre écrans et le second en a deux. Les possibilités sont alors:

 DISPLAY=paxbox1.paxco.com:0.0 DISPLAY=paxbox1.paxco.com:0.1 DISPLAY=paxbox1.paxco.com:0.2 DISPLAY=paxbox1.paxco.com:0.3 DISPLAY=paxbox1.paxco.com:1.0 DISPLAY=paxbox1.paxco.com:1.1 

selon l’endroit où vous souhaitez que vos fenêtres apparaissent et quels périphériques vous souhaitez utiliser.

 $ export DISPLAY=yourmachine.yourdomain.com:0.0 $ firefox & 

Lorsque vous vous connectez à un autre ordinateur via SSH, vous pouvez activer le transfert X dans SSH, afin que les fenêtres X soient transférées chiffrées via le tunnel SSH vers votre ordinateur. Vous pouvez activer le transfert X en ajoutant -X à la ligne de commande ssh ou en définissant ForwardX11 yes dans votre fichier de configuration SSH.

Pour vérifier si le X-Forwarding a été configuré avec succès (le serveur ne le permet peut-être pas), essayez simplement si echo $DISPLAY génère quelque chose comme localhost:10.0 .

Essayer

 export DISPLAY=localhost:0.0 

Essayez d’installer le paquet xorg-x11-xauth .

J’ai rencontré un problème similaire, alors peut-être que cette réponse aidera quelqu’un.

La raison de l’ Error: no display specified erreur d’ Error: no display specified n’est due au lancement de Firefox, mais aucun serveur X (GUI) ne s’exécute sur l’hôte distant. Vous pouvez utiliser le transfert X11 pour exécuter Firefox sur l’hôte distant, mais l’afficher sur votre hôte local. Sous Mac OS X, vous devrez télécharger XQuartz pour pouvoir utiliser le transfert X11. Sans elle, vous n’aurez pas $DISPLAY variable $DISPLAY , donc si vous essayez d’ echo $DISPLAY , ce sera vide.

J’ai fait face à un problème similaire aujourd’hui. Donc, voici une solution simple: en faisant SSH sur la machine, ajoutez simplement CtrlY .

 ssh user@ip_address -Y 

Après la connexion, tapez firefox & . Et vous êtes prêt à partir.

connectez-vous à votre serveur via

 ssh -X root@yourIP 

éditez le fichier / etc / ssh / sshd_config et ajoutez-y cette ligne.

 X11UseLocalhost no 

Redémarrez sshd. pour CentOS ( vérifiez votre dissortingbution )

 /sbin/service sshd restart 

vérifiez votre affichage

 echo $DISPLAY 

tu devrais voir ça

 yourIP:10.0 

Prendre plaisir

 firefox 

pour plus d’informations

Même je me suis retrouvé dans CentOS 6.8.

 yum reinstall xorg* 

Terminez votre session en cours et ouvrez une autre session dans un outil tel que mobiXterm. Assurez-vous que le transfert X11 est activé dans l’outil.

S’il vous plaît ne pas essayer de définir manuellement $ DISPLAY lors de la connexion via SSH.
Si vous vous connectez via SSH -X et que $ DISPLAY rest vide, cela signifie généralement qu’aucun canal chiffré ne peut être établi.

Il est fort probable que vous xauth le package xauth ou xorg-x11-xauth . Essayez de l’installer sur la machine distante en utilisant:

 sudo apt-get install xauth 

ou

 sudo apt-get install xorg-x11-xauth 

Après cela, redémarrez votre connexion SSH. N’oubliez pas d’utiliser SSH -X pour que la sortie X Window soit transmise à votre ordinateur local.

Maintenant, essayez echo $DISPLAY nouveau echo $DISPLAY pour voir si $ DISPLAY a été défini automatiquement par le démon SSH. Il devrait vous montrer une ligne avec une adresse IP et un port.

J’ai traversé vnc pour comprendre le X11 plus. Pour spécifier l’affichage pour obtenir un programme à plusieurs affichages, exportez DISPLAY = IP: DisplayNum.ScreenNum

Par exemple,

 vncserver :2 vncserver -list echo '$DISPLAY'=$DISPLAY export DISPLAY=:2 # export DISPLAY=IP:DisplayNum or export DISPLAY=:DisplayNum for localhost; So that can vnc connect and see the vnc desktop :2 if $DISPLAY is not :2. echo '$DISPLAY'=$DISPLAY