Xvfb:在新会话中运行某些程序是否需要一些延迟?

Xvfb:在新会话中运行某些程序是否需要一些延迟?

我有一个script.sh以这种方式在 Xvfb 新会话中启动的:

Xvfb :10 -screen 0 1000x200x24 & export DISPLAY=":10" && script.sh

script.sh运行一个 C++ 程序和一个 Java 程序。然而,我有时会在一两个错误中遇到错误:在 c++ 程序中我遇到了错误Segmentation fault,在 java 程序中我遇到了类似awt can't get display:10.当我script.sh在行的开头添加时,错误消失了

sleep 2;

之后我没有收到任何错误。怎么解释呢?

答案1

这个问题类似于如何在Xephyrsleep使用 -ing 的情况下启动。您的应用程序会在 Xvfb 准备就绪之前尝试访问它。解决这个问题最简单的方法是使用 xinit。运行 Xvfb

xinit script.sh -- /usr/bin/Xvfb :10

(包含export DISPLAY=:10到 script.sh 中)

相关内容