X 서버와 통신하는 데 사용되는 UNIX 소켓을 포함하는 디렉토리가 /tmp/.X11-unix
다른 위치에 있었던 적이 있습니까(예: 이상한 배포로 인해)? 그렇다면 대체 위치를 찾을 수 있는 방법이 있습니까?
답변1
최신 X11 온라인 소스 코드2012년 6월 6일 7.7 출시여러 tar 파일로 제공됩니다. 원천아스팔트libX11-1.5.0/src/OpenDis.c
libX11은 파일의 루틴 구현을 보여줍니다 XOpenDisplay()
. 연결을 시작하기 위해 _XConnectXCB()
인접한 파일을 호출합니다 . xcb_disp.c
이것을 이라고 합니다 xcb_connect()
.아스팔트libxcb-1.8.1/src/xcb_util.c
libxcb가 .it 에 있기 때문에 _xcb_open()
다음 줄을 사용하여 동일한 파일을 호출합니다.
static const char unix_base[] = "/tmp/.X11-unix/X";
어떤 구성 옵션도 이 행을 변경하지 않지만 Solaris Trusted Extensions에서는 /tmp/launch
이를 기본으로 사용하면 작동합니다 HAVE_LAUNCHD
(아무것도 모릅니다)./var/tsol/doors/.X11-unix/X
물론 배포판이 이러한 소스 코드를 패치하는 것을 방해하는 것은 없습니다. 배포판을 확인할 수도 있습니다.
strings /usr/lib*/libxcb.so|grep X11
이것은 실제로 내 Fedora에 나타납니다 /tmp/.X11-unix/X
.
답변2
X 서버(Xorg로 가정)가 실행 중인 경우 다음과 같이 소켓을 찾을 수 있습니다.sudo lsof -p $(pidof Xorg) | grep unix