Xvfb: algum atraso é necessário para executar algum programa em uma nova sessão?

1

Eu tenho um script.sh que inicio na nova sessão do Xvfb desta maneira:

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

Em script.sh , executo um programa em c ++ e um programa em java. No entanto, às vezes eu tenho erros em um ou dois deles: no programa c + + eu tenho Segmentation fault e programa java eu tenho exceção algo como awt can't get display:10 . Os erros desapareceram quando eu adicionei no começo de script.sh da linha

sleep 2;

Depois disso, não recebi nenhum erro. Como explicar isso?

    
por Pavel 14.02.2017 / 15:56

1 resposta

2

Esta pergunta é semelhante a Como iniciar o Xephyr sem sleep -ing . Seus aplicativos tentam acessar o Xvfb antes que ele esteja pronto. A maneira mais limpa de resolver isso é usar o xinit. Execute o Xvfb com

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

(inclua export DISPLAY=:10 no script.sh)

    
por 14.02.2017 / 18:06