virtualbox/virtualbox.init
2013-01-17 19:20:55 +04:00

114 lines
2 KiB
Bash

#! /bin/sh
#
# virtualbox: Starts the VirtualBox kernel module
#
# chkconfig: 35 30 60
# description: VirtualBox Linux kernel module
#
### BEGIN INIT INFO
# Provides: vboxdrv
# Required-Start: $syslog
# Required-Stop:
# Default-Start: 3 5
# Default-Stop:
# Description: VirtualBox Linux kernel module
# Should-Start: dkms
### END INIT INFO
# Source function library.
. /etc/init.d/functions
DAEMON=virtualbox
PROGNAME=VBoxSVC
RETVAL=0
running() {
grep -q "^$1 " /proc/modules
}
start() {
# Check if it is already running
if ! running vboxdrv; then
gprintf "Starting %s daemon: " "$DAEMON"
if ! modprobe vboxdrv > /dev/null 2>&1; then
failure "Loading vboxdrv module:"
return
fi
if ! modprobe vboxnetflt > /dev/null 2>&1; then
failure "Loading vboxnetflt module:"
return
fi
if ! modprobe vboxnetadp > /dev/null 2>&1; then
failure "Loading vboxnetadp module:"
return
fi
touch /var/lock/subsys/$PROGNAME
success
fi
echo
}
stop() {
gprintf "Stopping %s daemon: " "$DAEMON"
if running vboxdrv; then
if running vboxnetflt; then
if ! rmmod vboxnetflt 2>/dev/null; then
failure "Remove module vboxnetflt:"
return
fi
fi
if running vboxnetadp; then
if ! rmmod vboxnetadp 2>/dev/null; then
failure "Remove module vboxnetadp:"
return
fi
fi
if ! rmmod vboxdrv 2>/dev/null; then
failure "Remove module vboxdrv:"
return
fi
fi
success
echo
}
restart() {
stop
start
}
status() {
if running vboxdrv; then
STATUS="loaded"
else
STATUS="not loaded"
fi
gprintf "%s kernel module is %s\n" $DAEMON "$STATUS"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/$PROGNAME ]; then
restart
fi
;;
status)
status
;;
*)
INITNAME=`basename $0`
gprintf "Usage: %s {start|stop|restart|condrestart|status}\n" "$INITNAME"
exit 1
;;
esac
exit $RETVAL