$DISPLAY-Socket-Namen unter OS X 10.6 bestimmen?

$DISPLAY-Socket-Namen unter OS X 10.6 bestimmen?

Ich möchte etwas tun, das ein bisschen ungewöhnlich ist. Ich verwende SSHausein ServerZuein Snow Leopard-Client, um einen X11-Datenanzeigeprozess zu starten. Mit anderen Worten, die X11-Weiterleitung von SSH ist nicht das, was ich will.

Ich kann:

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

Und wenn ich das tue:

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

Ich freue mich, mein Xterm zu bekommen.

Was ich also brauche, ist eine Möglichkeit, den richtigen Wert für $DISPLAY in meiner SSH-Sitzung herauszufinden. Soweit ich gelesen habe, wird $DISPLAY von launchd festgelegt, aber ich habe keine Möglichkeit gefunden, diesen Wert anzuzeigen.

Falls es wichtig ist: Ich weiß, dass sich $client beim Terminal als derselbe Benutzer anmeldet, wenn mein Prozess eine Verbindung von $server zu $client herstellt.

Antwort1

Ich bin nicht sicher, ob das die beste Antwort ist (werde ein paar Tage warten, bevor ich es markiere!), aber es klingt vielversprechend:

Erstellen Sie zunächst ein Skript auf $client, beispielsweise save_display.sh:

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

Erstellen Sie als Nächstes eine LaunchAgent .plist dafür und speichern Sie sie unter ~/Library/LaunchAgents. Lassen Sie sie mit einem Intervall von 60 Sekunden oder so starten.

Zum Schluss laden Sie esin der Aqua-Sitzung:

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

Wenn Sie es einfach normal laden, wird $DISPLAY nicht festgelegt und Ihre Datei ist leer.

Dann,

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

und Erfolg.

Scheint auch nach Neustarts zu funktionieren. Ich bin ziemlich zufrieden damit.

verwandte Informationen