¿Qué significa realmente DISPLAY =: 0.0?


45

¿Qué significa :0.0realmente? Sé que :0es el primer servidor X que se inicia en una máquina local, :1el segundo, etc. ¿Pero después de qué .0parte :0? ¿Existen otras combinaciones? (por ejemplo :0.0-something)

Antecedentes: Estoy tratando de mejorar el guión de inicio del abejorro , que asume actualmente que :0es la pantalla activa. Ese no es el caso si cambio de usuario. Así que quería validar la $DISPLAYvariable antes de pasarla vglclient.


2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature me ayudó a comprender algunos de estos términos. Esta respuesta también tiene información útil.
— waldyrious

Respuestas:


52

El formato de la variable de visualización es [host]:<display>[.screen].

host se refiere a un nombre de host de red, y si está ausente significa conectarse a la máquina local a través de un socket de dominio Unix

Cada host puede tener múltiples pantallas, y cada pantalla puede tener múltiples pantallas. Las pantallas ya no se usan mucho, con xinerama y ahora xrandr combinando múltiples pantallas en una sola pantalla lógica.


44
Gracias, también encontré la página del manual correcta, Xserver(1)referida a la DISPLAY NAMESsección de X(7). Consulte esa página del manual para más detalles.
— Lekensteyn

55
¿Y cómo obtendría una lista de pantallas disponibles para un determinado host? Idealmente dentro de una sesión ssh donde estoy conectado al host desde una PC cliente.
— con-f-use

3
La parte de la pantalla también se usa en X sobre SSH. A cada nueva conexión SSH con reenvío X habilitado se le asigna una pantalla diferente, porque estas pantallas corresponden internamente a un desplazamiento del número de puerto TCP, por ejemplo, DISPLAY=localhost:10.0hará que el cliente dirija la salida gráfica al localhostpuerto host 6010. Esto es necesario para el reenvío SSH X, porque si Si tiene varias conexiones a la misma computadora, su programa debe enviar diferentes salidas a diferentes puertos para que el servidor SSH pueda reenviar la salida X al destino adecuado.
— RAKK

44
@ Raza: Los números de puerto TCP para abrir son 6000 + número_de_pantalla. Para el host de pantalla: 0.0 que es el puerto 6000. Para el host de pantalla: 10.0 que es el puerto 6010. Tenga en cuenta que el reenvío SSH X11 se realiza a través del puerto 22 y no a los puertos X11.
— camh

1
@Claudiu: DISPLAY =: 0 usará un socket de dominio unix, DISPLAY = localhost: 0 usará un socket de dominio de Internet (IP). Es probable que su servidor X no escuche en un punto final TCP / IP. No sé el zócalo de dominio de Unix predeterminado.
— camh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.