¿Determinar el nombre del socket $DISPLAY en OS X 10.6?

¿Determinar el nombre del socket $DISPLAY en OS X 10.6?

Estoy buscando hacer algo que sea un poco extraño. Estoy haciendo SSHdeun servidoraun cliente Snow Leopard para iniciar un proceso de visualización de datos X11. En otras palabras, el reenvío X11 de SSH no es lo que quiero.

Puedo hacer:

client$ echo $DISPLAY
/tmp/launch-SOMETHING/org.x:0
client$ ls -l $DISPLAY
srwx------  1 myuser  wheel  0 Dec  9 15:47 /tmp/launch-SOMETHING/org.x:0

Y, cuando lo hago:

server$ ssh myuser@client
client$ export DISPLAY=/tmp/launch-SOMETHING/org.x:0
client$ xterm

Felizmente recibo mi xterm.

Entonces, lo que necesito es alguna forma de encontrar el valor correcto de $DISPLAY en mi sesión ssh. Por lo que he leído, $DISPLAY lo establece launchd, pero no he encontrado ninguna forma de ver ese valor.

Si es importante, sé que cuando mi proceso se conecta desde $server a $client, $client iniciará sesión en la terminal como el mismo usuario.

Respuesta1

No estoy seguro de si esta es la mejor respuesta (¡esperaré unos días para marcarla!), pero parece prometedora:

Primero, cree un script en $client, digamos save_display.sh:

#!/bin/bash
echo $DISPLAY > /path/to/saved_disp

A continuación, cree un .plist de LaunchAgent y guárdelo en ~/Library/LaunchAgents. Haga que comience con un intervalo de 60 segundos o algo así.

Finalmente cárgaloen la sesión de Aqua:

carga launchctl -S Aqua ~/Library/LaunchAgents/my.display.saver.plist

Si lo carga normalmente, $DISPLAY no se configurará y su archivo estará vacío.

Entonces,

server$ ssh myuser@client
client$ export DISPLAY=`cat /path/to/saved_disp`
client$ xterm

Y éxito.

Parece seguir funcionando durante los reinicios. Estoy muy contento con eso.

información relacionada