0 votos

Cómo obtener el ${DISPLAY} fuera del entorno X

Me gustaría hacer un shell script y un Applescript script para disparar un comando del entorno X cuando este entorno esté activo ( a través de XQuartz por ejemplo ). Pero no sólo al iniciar el entorno X ( lo cual es sencillo ).

Para ello necesito el valor de la variable de entorno X:

${DISPLAY}

He pensado que un método fácil sería almacenar este valor en un ${HOME}/.display de un archivo ${HOME}/.xinitrc y eliminar este archivo al salir ( trampa o ejecución secuencial ).

¿Hay algún método "bueno", "experimentado", limpio y seguro para obtener este valor fuera del entorno X?

1voto

Jose Chavez Puntos 645

No hay una forma "correcta" de transferir datos, como el contenido de esa variable de entorno, de un programa a otro. Hay múltiples opciones con distintos niveles de complejidad, fiabilidad, seguridad, etc.

Básicamente puedes hacer lo que más te convenga, desde lo más sencillo hasta lo más complejo. Por ejemplo, cuando sabes que tienes el servidor de visualización X en el ordenador local, la variable de entorno sólo contiene el número de visualización y el número de pantalla. Puedes dejar que el usuario introduzca esos valores por sí mismo, dejando que el shell script pregunte al usuario.

Una forma mucho más compleja sería configurar una base de datos SQL donde se pueda almacenar el valor de la variable de entorno. Podrías tener un programa ejecutándose en la sesión X que actualizara continuamente los datos para poder detectar que la sesión X se ha cerrado. Esto sería en casi todos los casos un enfoque terrible que es básicamente exagerado.

El término medio son los métodos sencillos, pero no demasiado sencillos, como tener un archivo con un nombre conocido donde se almacena el contenido. O puede tener una tubería con nombre establecido donde pueda recibir el contenido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X