ตามที่@Gillesแนะนำมันเหมาะสมกว่าที่จะทำงานตามความต้องการโดยเฉพาะเมื่อคุณใช้มันสำหรับการทดสอบซีลีเนียม นี่คือตัวอย่างคำสั่งเชลล์:
export DISPLAY=:99
xdpyinfo -display $DISPLAY > /dev/null || Xvfb $DISPLAY -screen 0 1024x768x16 &
การตรวจสอบการแสดงผลโดยใช้xdpyinfo
ก่อนจะทำให้แน่ใจว่าคุณจะไม่เรียกใช้ framebuffer เสมือนสองครั้ง
หากคุณต้องการเริ่มต้นเมื่อเริ่มต้นจริง ๆ คุณสามารถลองใช้สคริปต์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
แหล่งที่มา: dloman / xvfb ที่ GitHub (แยกจาก: jterrace / xvfb )
บันทึกเป็น/etc/init.d/xvfb
และทำให้ปฏิบัติการได้จากนั้นเริ่มเป็น:
/etc/init.d/xvfb start
หากต้องการเรียกใช้โดยอัตโนมัติเมื่อเริ่มต้นให้เรียกใช้:
sudo update-rc.d xvfb defaults
หากต้องการลบออกจากการทำงานอัตโนมัติให้เรียกใช้:
sudo update-rc.d -f xvfb remove
เพิ่มไปยังenvironment
ไฟล์ที่โปรแกรม X รู้จักเช่น:
echo DISPLAY=":1" | sudo tee -a /etc/environment
นี่คือรุ่นสำหรับรุ่น systemd: dloman / xvfb.service
/etc/rc.local
ต้องการแก้ไขโดยใช้update-rc.d
กับสคริปต์ส่วนบุคคลของตัวเองหรือไม่