什么是`/ tmp / .X11-unix /`?


31

我问Google同样的问题,但不喜欢我得到的结果。

什么/tmp/.X11-unix/


2
哇,我要问你对它们不满意的地方...但是那是一些非常糟糕的结果。
derobert

您运行Xvnc吗?
toxefa

2
@ py4on我不这么认为,我问是因为我有兴趣在docker容器中运行图形应用程序,因此提到了将x11套接字警告到该容器。stackoverflow.com/a/25334301/1695680
ThorSummoner

可怕?真?在我的世界中,第二个搜索结果是来自这个非常WWW网站的unix.stackexchange.com/questions/57138
JdeBP 2015年

3
@JdeBP的确如此,但是标题的摘录没有给您任何理由,它看上去像是对一些随机问题进行故障排除。当然现在出现了这个问题,因此Google已修复。
derobert

Answers:


21

在我还算跟上时代的拱门笔记本电脑,/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


1
即将链接到您的另一个答案!unix.stackexchange.com/a/20380/109083
toxefa 2015年

2
不用说nitpick,但我怀疑Unix本地套接字比本地 TCP套接字(不使用硬件接口,并且也是100%内核)具有任何性能优势。
goldilocks 2015年

@goldilocks-一个有趣的断言。
Bruce Ediger


1
@Max,我纠正了! 尽管不是出于Bruce引用的原因,而是因为内核的TCP堆栈的开销。
goldilocks 2015年

11

X服务器有几种与X客户端(应用程序)通信的方式。至少在同一台计算机上,最常用的一个是Unix域套接字。

Unix域套接字类似于更熟悉的TCP套接字,不同之处在于,不是连接到地址和端口,而是连接到path。您使用实际文件(套接字文件)进行连接。

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。请注意,这些页面以程序员为中心。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.