我有一个奇怪的情况。这些是我的命令及其输出:
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/*