X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=VirtualBox-vboxsf.init;h=0011bf0ec2ea73580d1befebd510baf9878cf950;hb=ffb104d54c1a178839d6f1e056101d8b739c9fac;hp=83581c3c82fc4436522d39679f5c2adfacd81e77;hpb=d5e684a36ed60bcb933549c1ee31d80178f69129;p=packages%2FVirtualBox.git diff --git a/VirtualBox-vboxsf.init b/VirtualBox-vboxsf.init old mode 100644 new mode 100755 index 83581c3..0011bf0 --- a/VirtualBox-vboxsf.init +++ b/VirtualBox-vboxsf.init @@ -1,35 +1,46 @@ #!/bin/sh # # virtualbox VirtualBox virtualizer for x86 hardware -# -# chkconfig: 345 84 25 -# -# description: InnoTek VirtualBox is a general-purpose full virtualizer for x86 +# chkconfig: 345 84 16 +# description: Oracle 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/vboxvfs" -VBOX_MODULE="vboxvfs" +VBOX_MODULE="vboxsf" # Get service config - may override defaults [ -f /etc/sysconfig/virtualbox ] && . /etc/sysconfig/virtualbox start() { - if [ ! -f /var/lock/subsys/vboxvfs ]; then - modprobe -s $VBOX_MODULE - # set proper /dev/vboxdrv for systems with static dev - touch /var/lock/subsys/vboxvfs + if [ -f /var/lock/subsys/vboxsf ]; then + return fi + + modprobe -s $VBOX_MODULE + touch /var/lock/subsys/vboxsf } stop() { - # NOTE: rmmod will wait if device is in use, so automatic rmmod probably not the best idea + # umount vboxsf mounts, no retry, just don't stack them :) + local mount errors out rc=0 + show "Unmounting vboxsf file systems"; busy + awk '$3 == "vboxsf" {print $2}' /proc/mounts | while read mount; do + if ! umount "$mount"; then + rc=$? + fi + done + if [ $rc = 0 ]; then + ok + else + fail + fi + + # NOTE: rmmod will say module in use if there are remaining mounts /sbin/rmmod $VBOX_MODULE - rm -f /var/lock/subsys/vboxvfs + + rm -f /var/lock/subsys/vboxsf } RETVAL=0