我向谷歌询问了同样的问题,但不喜欢得到的结果。
什么是/tmp/.X11-unix/
?
答案1
在我最新的 Arch 笔记本电脑上,/tmp/.X11-unix/
有一个包含一个条目的目录:X0
、Unix域套接字。
X11 服务器(Xorg
现在通常)xterm
通过某种可靠的字节流与 Firefox 等客户端进行通信。 Unix 域套接字可能比向世界开放的 TCP 套接字更安全,而且可能更快一些,因为内核会完成这一切,并且不必依赖以太网或无线卡。
我的 X11 服务器显示为:
bediger 294 293 0 Apr09 tty1 01:23:26 /usr/lib/xorg-server/Xorg -nolisten tcp :0 vt1 -auth /tmp/serverauth.aK3Lrv5hMV
“-nolisten tcp”阻止它打开 TCP 端口 6000 进行通信。
该命令lsof -U
可以告诉您哪些进程正在使用哪些 Unix 域套接字。我认为Xorg
连接到/tmp/.X11-unix/X0
.
答案2
X 服务器有多种与 X 客户端(应用程序)通信的方式。最常用的(至少在同一台机器上)是 Unix 域套接字。
Unix 域套接字类似于更熟悉的 TCP 套接字,不同之处在于您不是连接到地址和端口,而是连接到小路。您使用实际文件(套接字文件)进行连接。
X 服务器将其套接字放入/tmp/.X11-unix
:
$ ls -l /tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 Dec 18 18:03 /tmp/.X11-unix/X0
注意s
权限前面的 ,这意味着它是一个套接字。如果您有多个 X 服务器正在运行,那么那里就会有多个文件。
至少在 Linux 手册页中,可以在 中找到有关套接字(一般情况)的更多详细信息man 7 socket
。有关 Unix 域套接字的详细信息位于man 7 unix
.请注意,这些页面是以程序员为中心的。
答案3
/tmp/.X11-unix/X{n} 是 X 服务器放置侦听 AF_DOMAIN 套接字的位置。在同一位置附近有 /tmp/.X{n}-lock 是锁。正如中所讨论的https://bugzilla.redhat.com/show_bug.cgi?id=503181这个方案不太好FHS。