Xvfb启动失败错误

98

我使用的是Ubuntu 11.04。 我想安装Xvfb和CutyCapt,以便拍摄网页快照。 我按照这里的说明进行操作,并执行了最后一行命令,但是出现了错误:

xvfb-run: error:Xvfb failed to start

有解决方法吗?谢谢。


28
默认情况下,xvfb-run 会隐藏错误消息...... 给它加上 -e /dev/stdout 可以查看问题的具体信息。 - user2404501
1
我收到了“服务器已经在显示99上运行”的消息。如果这个服务器不再运行,请删除/tmp/.X99-lock并重新启动。 - user1413449
你按照提示信息删除了临时文件吗?结果如何? - dcorking
如果您想同时运行多个进程,最好不要删除锁定文件,而是使用下面答案中描述的 -a 选项。这将获取下一个可用的服务器编号。 - Mircea
5个回答

154
我在Ubuntu 14.04上遇到了错误信息"xvfb-run: error: Xvfb failed to start",但之前我的脚本在Ubuntu 12.04上运行时没有问题。我的脚本多次调用xvfb-run,但由于错误信息"Server is already active for display 99"而失败。似乎当xvfb-run命令返回时,Xvfb未结束。我的解决方法是使用" xvfb-run -a [mycommand]",这样如果显示器99正在使用,则xvfb将使用另一个显示器。请注意保留原文的HTML标签。

25
这个答案指引我找到了解决方案。在我的情况下,之前运行的xvfb-run挂起了,所以我使用"ps aux | grep xvfb"命令找到了进程id,并杀掉了这个进程。 - Jono
4
使用wkhtmltopdf时,-a对我也有效 :) xvfb-run -a /usr/bin/wkhtmltopdf - user3676604

32

我曾遇到同样的问题,通过运行以下命令解决了:

xvfb-run --auto-servernum --server-num=1 [your script]

--auto-servernum :尝试获取一个从99开始的免费服务器编号,或者使用--server-num参数传入的值。


1
这两者之间有区别吗?-a 和 this? - Y-B Cause
1
两者都一样。使用-a或--auto-server-num。 - Mircea

26

按照 @wumpus 的建议运行 xvfb-run -e /dev/stdout [mycommand]

我收到了服务器锁定消息:

Fatal server error:
Could not create server lock file: /tmp/.X99-lock

xvfb-run: 

error: Xvfb failed to start

使用sudo解决了我的问题:

sudo xvfb-run -e /dev/stdout [mycommand]

19

找到了问题:系统中有一个进程挂起,名字为

Xvfb
我解决了这个问题并且现在它可以正常工作。我之前一直没找到它是因为我尝试查找名称为“xvfb”的进程。

6
好的!在运行该命令之前,简单地执行 pkill Xvfb 即可! - Gengiolo

0
在 Mac OS 上运行 bash 脚本时,我遇到了这个错误。在运行脚本之前打开 XQuartz 解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接