![XServer:如何检查谁/什么使用 display:N](https://linux22.com/image/105517/XServer%EF%BC%9A%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E8%B0%81%2F%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8%20display%3AN.png)
我有一个奇怪的情况。这些是我的命令及其输出:
user@machine:~/Temp$ Xvfb :10 -screen 0 1024x768x16
_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
user@machine:~/Temp$ Xvfb :11 -screen 0 1024x768x16
_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
user@machine:~/Temp$ Xvfb :12 -screen 0 1024x768x16
started...
如您所见,didisplay:10 和 display:11 不是免费的。但是,/tmp 中没有文件 .x10-lock 和 .x11-lock。另外,/tmp/.X11-unix 中没有 =x10 和 =x11 文件。
我怎样才能知道为什么显示器 10 和 11 不可用?
答案1
您可以通过以下方式了解
lsof -i TCP:6010
作为 root,这将显示使用 X11 显示的任何 TCP 侦听器:10;将 6010 更改为 6011 以显示:11,依此类推;或使用一个范围,例如TCP:6000-6020
.
您可以类似地检查文件套接字侦听器,如果这对您来说也是一个问题(您只收到上面的 INET 侦听器的错误,所以还没有)。例如,如果您使用 运行 Xorg -nolisten tcp
,您将在 的结果中看到它lsof /tmp/.X11-unix/*
。
您可以将两者结合起来:
lsof -iTCP:6000-6020 /tmp/.X11-unix/*