#!/bin/sh # # virtualbox VirtualBox virtualizer for x86 hardware # # chkconfig: 345 83 26 # # description: VirtualBox is a general-purpose full virtualizer for x86 # hardware. Targeted at server, desktop and embedded use. # # $Id$ # Source function library . /etc/rc.d/init.d/functions VBOX_DEVICE="/dev/vboxadd" VBOX_MODULE="vboxadd" # Get service config - may override defaults [ -f /etc/sysconfig/virtualbox ] && . /etc/sysconfig/virtualbox start() { if [ ! -f /var/lock/subsys/vboxadd ]; then modprobe -s $VBOX_MODULE # set proper /dev/vboxdrv for systems with static dev if ! [ -d /dev/.udev/ ]; then show "Setting $VBOX_DEVICE entry" busy rm -f $VBOX_DEVICE VBOX_MAJOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/devices) if [ -n "$VBOX_MAJOR" ]; then VBOX_MINOR=0 else VBOX_MINOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/misc) if [ -n "$VBOX_MINOR" ]; then VBOX_MAJOR=$(awk '$2 == "misc" {print $1}' /proc/devices) fi fi if [ -z "$VBOX_MAJOR" ]; then /sbin/rmmod $VBOX_MODULE fail elif ! mknod -m 0660 $VBOX_DEVICE c $VBOX_MAJOR $VBOX_MINOR; then rmmod $VBOX_MODNAME fail elif ! chown root:vbox $VBOX_DEVICE; then fail else ok fi fi touch /var/lock/subsys/vboxadd fi } stop() { # NOTE: rmmod will wait if device is in use, so automatic rmmod probably is not the best idea /sbin/rmmod $VBOX_MODULE rm -f /var/lock/subsys/vboxadd } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) if ! is_module $VBOX_MODULE; then echo "$VBOX_MODULE module is loaded" else echo "$VBOX_MODULE module is not loaded" RETVAL=3 fi if [ ! -c $VBOX_DEVICE ]; then echo "$VBOX_DEVICE does not exist" RETVAL=3 else echo "$VBOX_DEVICE exists with major/minor $(ls -l $VBOX_DEVICE | awk '{print $5 $6}')" fi ;; *) msg_usage "$0 {start|stop|restart|status}" exit 3 esac exit $RETVAL