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