]> git.pld-linux.org Git - packages/VirtualBox-bin.git/blob - VirtualBox-vboxdrv.init
- fix NoSource0-md5 lines
[packages/VirtualBox-bin.git] / VirtualBox-vboxdrv.init
1 #!/bin/sh
2 #
3 # virtualbox    VirtualBox virtualizer for x86 hardware
4 #
5 # chkconfig:    345 82 27
6 #
7 # description:  VirtualBox is a general-purpose full virtualizer for x86 
8 #               hardware. Targeted at server, desktop and embedded use.
9 #
10 # $Id$
11
12 # Source function library
13 . /etc/rc.d/init.d/functions
14
15 VBOX_DEVICE="/dev/vboxdrv"
16 VBOX_MODULE="vboxdrv"
17
18 # Get service config - may override defaults
19 [ -f /etc/sysconfig/virtualbox ] && . /etc/sysconfig/virtualbox
20
21 start() {
22         if [ ! -f /var/lock/subsys/vboxdrv ]; then
23                 modprobe -s $VBOX_MODULE
24                 # set proper /dev/vboxdrv for systems with static dev
25                 if ! [ -d /dev/.udev/ ]; then
26                         show "Setting $VBOX_DEVICE entry"
27                         busy
28                         rm -f $VBOX_DEVICE
29                         VBOX_MAJOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/devices)
30                         if [ -n "$VBOX_MAJOR" ]; then
31                                 VBOX_MINOR=0
32                         else
33                                 VBOX_MINOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/misc)
34                                 if [ -n "$VBOX_MINOR" ]; then
35                                         VBOX_MAJOR=$(awk '$2 == "misc" {print $1}' /proc/devices)
36                                 fi
37                         fi
38                         if [ -z "$VBOX_MAJOR" ]; then
39                                 /sbin/rmmod $VBOX_MODULE
40                                 fail
41                         elif ! mknod -m 0660 $VBOX_DEVICE c $VBOX_MAJOR $VBOX_MINOR; then
42                                 rmmod $VBOX_MODNAME
43                                 fail
44                         elif ! chown root:vbox $VBOX_DEVICE; then
45                                 fail
46                         else
47                                 ok
48                         fi
49                 fi
50                 touch /var/lock/subsys/vboxdrv
51         fi
52 }
53
54 stop() {
55         # NOTE: rmmod will wait if device is in use, so automatic rmmod probably is not the best idea
56         /sbin/rmmod $VBOX_MODULE
57         rm -f /var/lock/subsys/vboxdrv
58 }
59
60 RETVAL=0
61 # See how we were called.
62 case "$1" in
63   start)
64         start
65         ;;
66   stop)
67         stop
68         ;;
69   restart)
70         stop
71         start
72         ;;
73   status)
74         if ! is_module $VBOX_MODULE; then
75                 echo "$VBOX_MODULE module is loaded"
76         else
77                 echo "$VBOX_MODULE module is not loaded"
78                 RETVAL=3
79         fi
80         if [ ! -c $VBOX_DEVICE ]; then
81                 echo "$VBOX_DEVICE does not exist"
82                 RETVAL=3
83         else
84                 echo "$VBOX_DEVICE exists with major/minor $(ls -l $VBOX_DEVICE | awk '{print $5 $6}')"
85         fi
86         ;;
87   *)
88         msg_usage "$0 {start|stop|restart|status}"
89         exit 3
90 esac
91
92 exit $RETVAL
This page took 0.026896 seconds and 3 git commands to generate.