
Estou procurando fazer algo um pouco estranho. Estou fazendo SSHdeum servidorparaum cliente Snow Leopard para iniciar um processo de exibição de dados X11. Em outras palavras, o encaminhamento X11 do SSH não é o que eu quero.
Eu posso fazer:
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
E, quando eu faço:
server$ ssh myuser@client
client$ export DISPLAY=/tmp/launch-SOMETHING/org.x:0
client$ xterm
Felizmente recebo meu xterm.
O que preciso, então, é de alguma forma de descobrir o valor correto para $DISPLAY na minha sessão ssh. Pelo que li, $DISPLAY é definido pelo launchd, mas não encontrei nenhuma maneira de ver esse valor.
Se for importante, sei que quando meu processo se conectar de $server a $client, $client fará login no terminal como o mesmo usuário.
Responder1
Não tenho certeza se esta é a melhor resposta (vou esperar alguns dias para sinalizá-la!), Mas parece promissora:
Primeiro, crie um script em $client, digamos, save_display.sh:
#!/bin/bash
echo $DISPLAY > /path/to/saved_disp
Em seguida, crie um LaunchAgent .plist para ele e salve-o em ~/Library/LaunchAgents. Faça com que comece com um intervalo de 60 segundos ou algo assim.
Finalmente, carregue-ona sessão Aqua:
launchctl load -S Aqua ~/Library/LaunchAgents/my.display.saver.plist
Se você carregá-lo normalmente, $DISPLAY não será definido e seu arquivo ficará vazio.
Então,
server$ ssh myuser@client
client$ export DISPLAY=`cat /path/to/saved_disp`
client$ xterm
e sucesso.
Parece continuar funcionando durante as reinicializações. Estou muito feliz com isso.