正如@Gilles建议的那样,它更适合按需运行,尤其是在将其用于Selenium测试时。这是示例shell命令:
export DISPLAY=:99
xdpyinfo -display $DISPLAY > /dev/null || Xvfb $DISPLAY -screen 0 1024x768x16 &
使用xdpyinfo
之前检查显示将确保您不会两次运行虚拟帧缓冲区。
如果确实需要在启动时启动它,则可以尝试以下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
来源:GitHub上的dloman / xvfb(来自: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
这是系统版本的版本:dloman / xvfb.service。
/etc/rc.local
比使用update-rc.d
自己的个人脚本优先吗?