desktop/virtualbox/vboxweb.rc
2011-07-20 16:14:43 +00:00

87 lines
1.9 KiB
Bash

#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/vbox/vbox.cfg
. /etc/conf.d/vboxweb
BINARY="$INSTALL_DIR/vboxwebsrv"
start() {
stat_busy "Starting VirtualBox Web Service";
if ! pidof -o %PPID $BINARY >/dev/null; then
[[ "$VBOXWEB_USER" ]] || stat_die
lsmod | grep -q "vboxdrv[^_-]" || stat_die
PARAMS="--background"
[[ "$VBOXWEB_HOST" ]] && PARAMS+=" -H $VBOXWEB_HOST"
[[ "$VBOXWEB_PORT" ]] && PARAMS+=" -p $VBOXWEB_PORT"
[[ "$VBOXWEB_TIMEOUT" ]] && PARAMS+=" -t $VBOXWEB_TIMEOUT"
[[ "$VBOXWEB_CHECK_INTERVAL" ]] && PARAMS+=" -i $VBOXWEB_CHECK_INTERVAL"
[[ "$VBOXWEB_THREADS" ]] && PARAMS+=" -T $VBOXWEB_THREADS"
[[ "$VBOXWEB_KEEPALIVE" ]] && PARAMS+=" -k $VBOXWEB_KEEPALIVE"
[[ "$VBOXWEB_LOGFILE" ]] && PARAMS+=" -F $VBOXWEB_LOGFILE"
# prevent inheriting this setting to VBoxSVC
unset VBOX_RELEASE_LOG_DEST
su - $VBOXWEB_USER -c "$BINARY $PARAMS" &>/dev/null
# ugly: wait until the final process has forked
sleep .2
if pidof -o %PPID $BINARY >/dev/null; then
add_daemon vboxweb
stat_done
else
stat_die
fi
else
stat_die
fi
}
stop() {
stat_busy "Stopping VirtualBox Web Service"
PID=$(pidof -o %PPID $BINARY)
[[ $PID ]] && kill $PID &>/dev/null
if ! pidof -o %PPID $BINARY >/dev/null; then
rm_daemon vboxweb
stat_done
else
stat_die
fi
}
restart() {
stop && start
}
status() {
stat_busy "Checking for VirtualBox Web Service"
if pidof -o %PPID $BINARY >/dev/null; then
stat_done
else
stat_fail
false
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
force-reload)
restart
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
# vim:set ts=2 sw=2 ft=sh et: