![Xvfb -screen --> 无法建立任何侦听套接字 - 确保 X 服务器尚未运行](https://linux22.com/image/73992/Xvfb%20-screen%20--%3E%20%E6%97%A0%E6%B3%95%E5%BB%BA%E7%AB%8B%E4%BB%BB%E4%BD%95%E4%BE%A6%E5%90%AC%E5%A5%97%E6%8E%A5%E5%AD%97%20-%20%E7%A1%AE%E4%BF%9D%20X%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B0%9A%E6%9C%AA%E8%BF%90%E8%A1%8C.png)
我想知道,为什么这不起作用?
$ screen
$ Xvfb -screen :1 1024x768x16 &
[1] 17540
$ _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)
然后Ctrl+C
或者之后+D
我运行这个:
$ ps -C Xorg
PID TTY TIME CMD
事实上,X 服务器没有运行。那为什么会出错呢?
$ uname -a
Linux ip-123456-generic #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
更新:
答案1
确保在启动 Xvfb 之前删除以下文件,如“:1”屏幕所示:
rm /tmp/.X11-unix/X1
rm /tmp/.X1
如果 Xvfb 无法创建这些“锁定”文件,则简单地认为 Xorg 服务器正在运行。这可能是因为另一个用户(例如 root)在同一屏幕上创建了它们,而您以无权删除“锁定”文件的用户身份启动 Xvfb。换句话说,Xvfb 尝试删除并创建“锁定”文件,如果失败,则会显示您遇到的错误。
答案2
你可能想运行:
Xvfb :1 -screen 0 1024x768x16 &
其中:1
是一个单独的参数,表示使用默认网络连接 +1,即您需要export DISPLAY=:1
在环境中连接到此显示器。此外,X11 服务器可能会以名称X
而不是Xorg
.