包含用于与 X 服务器通信的 UNIX 套接字的目录是否曾经有/tmp/.X11-unix
过不同的位置(比如因为某些奇怪的发行版)?如果是这样,有什么办法可以找到替代位置吗?
答案1
最新X11的在线源代码2012 年 6 月 6 日发布 7.7以多个 tar 文件形式提供。来源柏油libX11 在文件中向我们展示了libX11-1.5.0/src/OpenDis.c
例程的实现XOpenDisplay()
。它调用_XConnectXCB()
相邻文件xcb_disp.c
来启动连接。这叫xcb_connect()
.这柏油因为 libxcb 在libxcb-1.8.1/src/xcb_util.c
.它调用_xcb_open()
具有以下行的同一文件
static const char unix_base[] = "/tmp/.X11-unix/X";
任何配置选项都不会更改此行,但在 Solaris Trusted Extensions 上可以使用/tmp/launch
if you 作为基础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