Определить имя сокета $DISPLAY в OS X 10.6?
Я хочу сделать что-то немного странное. Я работаю по SSH с сервера на Snow Leopard, чтобы запустить процесс отображения данных X11. Другими словами, пересылка SSH X11 не то, что я хочу.
Я могу сделать:
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
И, когда я делаю:
server$ ssh myuser@client
client$ export DISPLAY=/tmp/launch-SOMETHING/org.x:0
client$ xterm
Я с удовольствием получаю свой xterm.
Тогда мне нужен какой-то способ узнать правильное значение $DISPLAY в моем сеансе ssh. Из того, что я прочитал, $DISPLAY устанавливается с помощью launchd, но я не нашел способа увидеть это значение.
Если это имеет значение, я знаю, что когда мой процесс подключится от $server к $client, $client будет подключен к терминалу как тот же пользователь.
1 ответ
Я не уверен, что это лучший ответ (подожду несколько дней, чтобы пометить его!), Но кажется многообещающим:
Сначала создайте скрипт на $client, скажем, save_display.sh:
#!/bin/bash
echo $DISPLAY > /path/to/saved_disp
Затем создайте для него LaunchAgent.plist и сохраните его в ~/Library/LaunchAgents. Пусть это начнется с интервалом в 60 секунд или около того.
Наконец, загрузите его в сеансе Aqua:
launchctl load -S Aqua ~ / Библиотека /LaunchAgents/my.display.saver.plist
Если вы просто загрузите его как обычно, $DISPLAY не будет установлен, и ваш файл будет пуст.
Затем,
server$ ssh myuser@client
client$ export DISPLAY=`cat /path/to/saved_disp`
client$ xterm
и успех.
Кажется, продолжает работать через перезагрузки. Я очень доволен этим.