
ちょっと変わったことをしたいと思っています。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 を喜んで入手しました。
そこで必要なのは、SSH セッションで $DISPLAY の正しい値を見つける方法です。私が読んだところによると、$DISPLAY は launchd によって設定されますが、その値を確認する方法が見つかりませんでした。
重要なのは、プロセスが $server から $client に接続すると、$client が同じユーザーとしてターミナルにログインするということです。
答え1
これが最良の回答かどうかはわかりません (数日待ってフラグを立てます!) が、有望なようです:
まず、$client に save_display.sh というスクリプトを作成します。
#!/bin/bash
echo $DISPLAY > /path/to/saved_disp
次に、LaunchAgent .plist を作成し、~/Library/LaunchAgents に保存します。60 秒間隔などで起動するようにします。
最後にロードしますアクアセッションで:
launchctl load -S Aqua ~/Library/LaunchAgents/my.display.saver.plist
通常どおりにロードすると、$DISPLAY は設定されず、ファイルは空になります。
それから、
server$ ssh myuser@client
client$ export DISPLAY=`cat /path/to/saved_disp`
client$ xterm
そして成功。
再起動しても動作し続けるようです。とても満足しています。