Skip to content

Instantly share code, notes, and snippets.

@dloman
Forked from jterrace/xvfb
Last active September 12, 2023 12:32
Show Gist options
  • Save dloman/8303932 to your computer and use it in GitHub Desktop.
Save dloman/8303932 to your computer and use it in GitHub Desktop.
### 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
@dloman
Copy link
Author

dloman commented Jan 7, 2014

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

@mikatalk
Copy link

Thanks!

@lessless
Copy link

One can add
sudo echo DISPLAY=":1" >> /etc/environment
for programs to automatically recognize xvfb on the server

@josephdpurcell
Copy link

Thanks, this is helpful! For anyone who has tried https://gist.github.com/jterrace/2911875, I recommend this instead since it has the init block. And don't forget to run sudo update-rc.d xvfb defaults like @dloman mentioned!

@nddipiazza
Copy link

Joseph adds two crucial things to using this. Should be merged to master.

@Namek
Copy link

Namek commented Jan 11, 2016

@lessless on Ubuntu I needed sudo sh -c "echo 'DISPLAY=\":1\"' >> /etc/environment" because stream redirection doesn't run as root.

@dloman
Copy link
Author

dloman commented May 4, 2016

@hho
Copy link

hho commented May 25, 2016

I'd add -nolisten tcp to the arguments (assuming you're using it with locally running apps).

@bzkdjc
Copy link

bzkdjc commented Jun 5, 2016

First line should be #!/bin/sh

@sebastiansulinski
Copy link

I must be missing something - getting insserv: script xvfb is not an executable regular file, skipped! - any idea?

@daudmalik06
Copy link

@sebastiansulinski i had same problem i resolved it by following steps :
1:cd /etc/init.d/

2:sudo chmod +x xvfb
then you can try

sudo ./xvfb start

@MarkusPint
Copy link

MarkusPint commented Jul 22, 2017

Doesn't start Xvfb after reboot

Did sudo update-rc.d xvfb defaults also.

EDIT: First line needs to be #!/bin/sh, otherwise wont work on boot Ubuntu 16.04

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