Skip to content

Instantly share code, notes, and snippets.

@encoreshao
Forked from jterrace/xvfb
Last active August 29, 2015 14:05
Show Gist options
  • Save encoreshao/51799d137730c4d9ea10 to your computer and use it in GitHub Desktop.
Save encoreshao/51799d137730c4d9ea10 to your computer and use it in GitHub Desktop.
Linux xvfb
### Step 1: Install xvfb
> # apt-get install xvfb
### Step 2: Create and enable the init script for the xvfb daemon
Note “:0″ in XVFBARGS which sets to display 0, and the –set-guid parameter, which runs the daemon as the www-data user. If you are not running a headless server, make sure to change all references to “:0″ to “:#” (ie: :1, :2 or :22) to avoid conflicts with your existing X session(s)
Move xvfb_v2 to in “/etc/init.d/xvfb”:
### Enable your init script:
> # update-rc.d xvfb defaults 10
### Run your init script:
> # /etc/init.d/xvfb start
Starting virtual X frame buffer: Xvfb.
### Check to confirm your Xvfb is running:
> # ps auxU www-data | grep [X]vfb
www-data 17852 0.0 0.2 54960 7904 ? S 04:31 0:00 /usr/bin/Xvfb
### BEGIN INIT INFO
# Provides: Xvfb
# Required-Start: $local_fs $remote_fs
# Required-Stop:
# X-Start-Before:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Loads X Virtual Frame Buffer
### END INIT INFO
XVFB=/usr/bin/Xvfb
XVFBARGS=":0 -screen 0 1024x768x24 -ac +extension GLX +render -noreset"
PIDFILE=/var/run/xvfb.pid
case "$1" in
start)
echo -n "Starting virtual X frame buffer: Xvfb"
start-stop-daemon --chuid www-data --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
echo "."
;;
stop)
echo -n "Stopping virtual X frame buffer: Xvfb"
start-stop-daemon --chuid www-data --stop --quiet --pidfile $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
exit 1
esac
exit 0
### BEGIN INIT INFO
# Provides: Xvfb
# Required-Start: $local_fs $remote_fs
# Required-Stop:
# X-Start-Before:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Loads X Virtual Frame Buffer
### END INIT INFO
XVFB=/usr/bin/Xvfb
XVFBARGS=":1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset"
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
@encoreshao
Copy link
Author

(e.g: if you're using a Ubuntun system)

apt-get install xvfb

put the contents of the gist as a file residing at

/etc/init.d/xvfb

you'll probably need to make it executable

chmod +x /etc/init.d/xvfb

and then you can start it with

/etc/init.d/xvfb start

The script will start the virtual display at :1 so make sure to set your environment variable appropriately (export DISPLAY=:1) before running whatever you want to run inside the virtual x frame buffer.

To automatically run on startup use command:

sudo update-rc.d xvfb defaults

To remove from autorun use command:

sudo update-rc.d -f xvfb remove

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment