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 xdpyinfoavant 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/xvfbet 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 environmentfichier 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.localpréférable à l'utilisationupdate-rc.davec ses propres scripts individuels?