
Estoy experimentando variables $DISPLAY inconsistentes en mis servidores OEL6 que han causado bastantes problemas.problemas con los archivos de socket.
He encontrado sorprendentemente poco sobre lo que realmente establece la variable de entorno $DISPLAY. Sé lo que hace (más o menos) y cómo configurarlo manualmente en el shell. Lo que no sé es CÓMO se configura cuando el El sistema está iniciando.
entonces
¿Cómo y dónde se configura la variable de entorno $DISPLAY de GDM y cómo puedo forzar a GDM a: 0.0?
Nota: NO estoy buscando export DISPLAY=:0.0
porque eso no será de ninguna utilidad en este caso.
Respuesta1
En hombreX(7)hay seccionNombres para mostrarQue estados:
En los sistemas POSIX, el nombre para mostrar predeterminado se almacena en su variable de entorno DISPLAY. Esta variable la establece automáticamente el emulador de terminal xterm.
y después:
Finalmente, la mayoría de los programas X aceptan una opción de línea de comando de -display displayname para anular temporalmente el contenido de DISPLAY. Esto se usa más comúnmente para abrir ventanas en la pantalla de otra persona o como parte de un comando de "shell remoto" para iniciar un xterm que apunte a su pantalla.
hombre paraServidor X(1)tenemos información sobre Opciones:
:número de visualización El servidor X se ejecuta con el número de visualización dado, que de forma predeterminada es 0. Si se van a ejecutar varios servidores X simultáneamente en un host, cada uno debe tener un número de visualización único. Consulte la sección NOMBRES DE PANTALLA de la página del manual de X(7) para aprender cómo especificar qué número de pantalla los clientes deben intentar usar.
Eche un vistazo a: /etc/gdm/Init/Default (disponible en ArchLinux, así que no estoy seguro si en el sistema RHEL está disponible).
Algunos hallazgos más. La PANTALLA está configurada por el programa xinit. xinit.c tiene esto:
if (argc > 0 && (argv[0][0] == ':' && isdigit(argv[0][1])))
displayNum = *argv;
else
displayNum = *sptr++ = default_display;
(...)
static void
set_environment(void)
{
if (setenv("DISPLAY", displayNum, TRUE) == -1)
Fatal("unable to set DISPLAY");
}
Entonces xinit puede establecer el valor predeterminado o tomarlo de la opción pasada a xinit cuando se ejecutó.xinit(1):
xinit [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
Y uno más. La variable de entorno se puede configurar mediante PAM. P.ej./etc/security/pam_env.conf
# Set the DISPLAY variable if it seems reasonable
#DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}