Come suggerito da @Gilles , è più adatto per l'esecuzione su richiesta, soprattutto quando lo si utilizza per i test del selenio. Ecco alcuni comandi di shell di esempio:
export DISPLAY=:99
xdpyinfo -display $DISPLAY > /dev/null || Xvfb $DISPLAY -screen 0 1024x768x16 &
Controllando il display usando xdpyinfo
prima ti assicurerai che non eseguirai framebuffer virtuale due volte.
Se è davvero necessario avviarlo all'avvio, è possibile provare il seguente script init.d :
#!/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
Fonte: dloman / xvfb su GitHub (biforcuta da: jterrace / xvfb )
Salvalo come /etc/init.d/xvfb
e rendilo eseguibile, quindi avvialo come:
/etc/init.d/xvfb start
Per eseguire automaticamente all'avvio, eseguire:
sudo update-rc.d xvfb defaults
Per rimuoverlo dall'autorun, eseguire:
sudo update-rc.d -f xvfb remove
Aggiungi anche al environment
file per essere riconosciuto dai programmi X, ad esempio:
echo DISPLAY=":1" | sudo tee -a /etc/environment
Ecco la versione per la versione systemd: dloman / xvfb.service .
/etc/rc.local
preferita all'utilizzoupdate-rc.d
con i propri script individuali?