Skip to content

Instantly share code, notes, and snippets.

@maxivak
Last active May 4, 2017 14:09
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save maxivak/6c95cf3907af4bb9c232 to your computer and use it in GitHub Desktop.
Save maxivak/6c95cf3907af4bb9c232 to your computer and use it in GitHub Desktop.
Xvfb init script
#!/bin/bash
# xvfb - this script starts and stops Xvfb
#
# chkconfig: 345 95 50
# description: Starts xvfb on display 99
# processname: Xvfb
# pidfile: /var/log/xvfb/xvfb.pid
# Source function library.
. /etc/rc.d/init.d/functions
log_dir=/var/log/xvfb
error_log=$log_dir/xvfb_error.log
std_log=$log_dir/xvfb_std.log
pid_file=$log_dir/xvfb.pid
xvfb=$( which Xvfb )
user=YOUR_USER
screen_options=":99 -ac -screen 0 1024x768x8"
start() {
if test -f $pid_file
then
PID=`cat $pid_file`
if ps --pid $PID >/dev/null;
then
echo "Xvfb is already running: $PID"
exit 0
else
echo "Removing stale pid file: $pid_file"
fi
fi
echo -n "Starting Xvfb..."
su $user -c "$xvfb $screen_options -nolisten tcp >$std_log 2>$error_log &"
if [ $? == "0" ]; then
success
else
failure
fi
echo
ps -C Xvfb -o pid,cmd | grep Xvfb | awk {'print $1 '} > $pid_file
}
stop() {
if test -f $pid_file
then
echo -n "Stopping Xvfb..."
PID=`cat $pid_file`
su $user -c "kill -15 $PID"
if kill -9 $PID ;
then
sleep 2
test -f $pid_file && rm -f $pid_file
success
else
echo "Xvfb could not be stopped..."
failure
fi
else
echo "Xvfb is not running."
failure
fi
echo
}
status() {
if test -f $pid_file
then
PID=`cat $pid_file`
if ps --pid $PID >/dev/null ;
then
echo "Xvfb is running...$PID"
else
echo "Xvfb isn't running..."
fi
else
echo "Xvfb isn't running..."
fi
}
case "$1" in
start)
$1
;;
stop)
$1
;;
restart)
stop
start
;;
status)
$1
;;
*)
echo "Usage: $SELF start|stop|restart|status"
exit 1
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment