Linux
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;
之後我沒有收到任何錯誤。怎麼解釋?
這個問題類似於How to launch
Xephyr
withoutsleep
-ing。您的應用程序會在 Xvfb 準備好之前嘗試訪問它。解決這個問題的最乾淨的方法是使用 xinit。執行 Xvfbxinit script.sh -- /usr/bin/Xvfb :10
(包含
export DISPLAY=:10
在 script.sh 中)