Я хочу сделать что-то немного странное. Я работаю по 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 ответ1

0

Я не уверен, что это лучший ответ (подожду несколько дней, чтобы пометить его!) но кажется многообещающим

Сначала создайте скрипт на $ 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

и успех.

Кажется, продолжает работать через перезагрузки. Я очень доволен этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .