Este es un punto intermedio entre la programación y el servidor-administrador, pero en última instancia, parece ser el lugar más relevante para ello.
Estoy buscando una manera de determinar si la variable ' $DISPLAY
' está anunciando un XServer al que realmente podemos conectarnos, es decir, si toda la autenticación y demás están en su lugar para permitir que se ejecuten más cosas.
Lo ideal es buscar una herramienta de shell que devuelva verdadero / falso, que pueda usarse en un script de compilación para determinar si las otras pruebas (que no controlo) deberían ejecutarse o no.
En la actualidad, las pruebas simplemente verifican la env
variable " $DISPLAY
", y si está allí, intentarán conectarse, y cuando la conexión no funciona, las pruebas suponen un fallo de la prueba, no simplemente la pantalla no es conectable.
Solo necesito poder hacer
if [[ ! can_connect_to_X ]] ; then
unset DISPLAY
fi
Para detener estas pruebas que tienen problemas mentales graves.
En una situación ideal, la herramienta requerida para hacer esto debe venir provista con las bibliotecas de X Client en sí, para no incurrir en dependencias especiales y poder asumir que si la utilidad no está allí, no podemos conectarnos a ninguna pantalla.
Supongo que hay una mejor solución. Pero siempre puede usar una herramienta pequeña como xclock y verificar el estado de salida.
Pero hombre, eso es feo :-)
Menos Hacky, pon lo siguiente en checkX.c:
Entonces:
Finalmente:
fuente
Aquí hay un posible WayToDoIt, aunque no estoy seguro de lo bueno que es.
Esto parece estar funcionando.
fuente