什么是“/tmp/.X11-unix/”?

什么是“/tmp/.X11-unix/”?

我向谷歌询问了同样的问题,但不喜欢得到的结果。

什么是/tmp/.X11-unix/

答案1

在我最新的 Arch 笔记本电脑上,/tmp/.X11-unix/有一个包含一个条目的目录:X0Unix域套接字

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。

相关内容