web-dev-qa-db-fra.com

Qu'est-ce que DISPLAY =: 0?

Quel est DISPLAY=:0 et qu'est-ce que cela veut dire?

Ce n'est pas une commande, n'est-ce pas? (gnome-panel est une commande.)

DISPLAY=:0 gnome-panel
26
Tim

DISPLAY=:0 gnome-panel est une commande Shell qui exécute la commande externe gnome-panel avec la variable d'environnement DISPLAY définie sur :0. La syntaxe Shell VARIABLE=VALUECOMMAND définit la variable d'environnement VARIABLE pour la durée de la commande spécifiée uniquement. Il est à peu près équivalent à (export VARIABLE=VALUE; exec COMMAND).

La variable d'environnement DISPLAY indique aux programmes GUI comment communiquer avec l'interface graphique. Un système Unix peut exécuter plusieurs serveurs X , c'est-à-dire plusieurs affichages. Ces affichages peuvent être des affichages physiques (un ou plusieurs moniteurs), ou des affichages à distance (transmis sur le réseau, par exemple via SSH), ou des affichages virtuels tels que Xvfb , etc. La syntaxe de base pour spécifier les affichages est Host:NUMBER; si vous omettez le Host partie, l'affichage est local.

Les affichages sont numérotés de 0, donc :0 est le premier affichage local démarré. Dans les configurations typiques, c'est ce qui s'affiche sur le (s) moniteur (s) de l'ordinateur.

Comme toutes les variables d'environnement, DISPLAY est héritée du processus parent au processus enfant. Par exemple, lorsque vous vous connectez à une session GUI, le gestionnaire de connexion ou le démarreur de session définit DISPLAY de manière appropriée, et la variable est héritée par tous les programmes de la session. Lorsque vous ouvrez une connexion SSH avec le transfert X, SSH définit la variable d'environnement DISPLAY sur la connexion transférée, afin que les programmes que vous exécutez sur la machine distante soient affichés sur la machine locale. S'il n'y a pas de connexion X transférée (soit parce que SSH est configuré pour ne pas le faire, soit parce qu'il n'y a pas de serveur X local), SSH ne définit pas DISPLAY.

La définition de DISPLAY entraîne explicitement l'affichage du programme à un endroit où il ne le serait normalement pas. Par exemple, exécuter DISPLAY=:0 gnome-panel dans une connexion SSH démarre un panneau Gnome sur l'écran local de la machine distante (en supposant qu'il y en ait un et que l'utilisateur est autorisé à y accéder). Définition explicite de DISPLAY=:0 est généralement un moyen d'accéder à l'affichage local d'une machine depuis l'extérieur de la session locale, par exemple via un accès distant ou à partir d'une tâche cron.

C'est une variable d'environnement qui est transmise uniquement à ce programme, plutôt qu'au shell dans son ensemble. Cela se produit lorsque vous définissez une variable sur la même ligne qu'une commande.

Les programmes X11 doivent savoir où afficher les fenêtres, car il s'agit d'un système client/serveur et vous pouvez afficher sur une machine distante. Cela signifie simplement utiliser le premier affichage sur la machine locale.

Ceci est normalement configuré automatiquement lors de la connexion à un environnement de bureau. Par exemple, ouvrez un terminal graphique et tapez echo $DISPLAY.

30
teppic