OS X 10.6에서 $DISPLAY 소켓 이름을 확인하시겠습니까?

OS X 10.6에서 $DISPLAY 소켓 이름을 확인하시겠습니까?

좀 이상한 일을 하려고 합니다. 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

그리고 성공.

재부팅 후에도 계속 작동하는 것 같습니다. 나는 그것에 매우 만족합니다.

관련 정보