我想知道,为什么这不起作用?
$ 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
.