
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.