Comme l'a suggéré @Gilles , il est plus approprié de fonctionner à la demande, en particulier lorsque vous l'utilisez pour les tests de sélénium. Voici des exemples de commandes shell:
export DISPLAY=:99
xdpyinfo -display $DISPLAY > /dev/null || Xvfb $DISPLAY -screen 0 1024x768x16 &
La vérification de l'affichage en utilisant xdpyinfo
avant vous assurera de ne pas exécuter le framebuffer virtuel deux fois.
Si vous avez vraiment besoin de le démarrer au démarrage, vous pouvez essayer le script init.d suivant :
#!/bin/sh
XVFB=/usr/bin/Xvfb
XVFBARGS=":1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset -nolisten tcp"
PIDFILE=/var/run/xvfb.pid
case "$1" in
start)
echo -n "Starting virtual X frame buffer: Xvfb"
start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
echo "."
;;
stop)
echo -n "Stopping virtual X frame buffer: Xvfb"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
exit 1
esac
exit 0
Source: dloman / xvfb sur GitHub ( dérivé de: jterrace / xvfb )
Enregistrez-le sous /etc/init.d/xvfb
et rendez-le exécutable, puis démarrez-le comme:
/etc/init.d/xvfb start
Pour s'exécuter automatiquement au démarrage, exécutez:
sudo update-rc.d xvfb defaults
Pour le supprimer de l'exécution automatique, exécutez:
sudo update-rc.d -f xvfb remove
Ajoutez également au environment
fichier pour être reconnu par les programmes X, par exemple:
echo DISPLAY=":1" | sudo tee -a /etc/environment
Voici la version pour la version systemd: dloman / xvfb.service .
/etc/rc.local
préférable à l'utilisationupdate-rc.d
avec ses propres scripts individuels?