Skip to content

Instantly share code, notes, and snippets.

@kasng
Last active July 11, 2024 11:08
Show Gist options
  • Save kasng/56bf2d49497b73a429e4571d589c5acb to your computer and use it in GitHub Desktop.
Save kasng/56bf2d49497b73a429e4571d589c5acb to your computer and use it in GitHub Desktop.
Ubuntu start xvfb on boot #ubuntu
1 copy the file into /etc/init.d/xvfb
2 chmod +x /etc/init.d/xvfb
3 ./etc/init.d/xvfb start
4 # some headless test here
5 ./etc/init.d/xvfb stop
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

Xvfb systemd service

System environment

  • CentOS 8.0
  • Xvfb 1.20

Install Xvfb

yum install xorg-x11-server-Xvfb

Create systemd unit file

/lib/systemd/system/xvfb.service

[Unit]
Description=X Virtual Frame Buffer Service
After=network.target

[Service]
ExecStart=/usr/bin/Xvfb :1 -screen 0 1920x1280x24 -ac +extension GLX +render -noreset
User=ubuntu
Group=ubuntu

[Install]
WantedBy=multi-user.target

Run Xvfb service

systemctl start xvfb

Enable Xvfb service on startup

systemctl enable xvfb

References

### 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 1920x1280x24 -ac +extension GLX +render -noreset"
PIDFILE=/var/run/xvfb.pid
case "$1" in
start)
export DISPLAY=:1
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
rm $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
exit 1
esac
exit 0
[Unit]
Description=X Virtual Frame Buffer Service
After=network.target
[Service]
ExecStart=/usr/bin/Xvfb :1 -screen 0 1920x1280x24 -ac +extension GLX +render -noreset
User=ubuntu
Group=ubuntu
[Install]
WantedBy=multi-user.target
### 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment