mirror of
https://gitdl.cn/https://github.com/chakralinux/desktop.git
synced 2025-01-25 11:02:13 +08:00
87 lines
1.9 KiB
Bash
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:
|