X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=VirtualBox-vboxsf.init;h=0011bf0ec2ea73580d1befebd510baf9878cf950;hb=c11f39b3b623306869c7a4b3ccae5bf4f6fa6686;hp=097ae7ad26ae3356378b629c6200760678968539;hpb=f8d383ed7f00d93bb170120d934e60b4fb9011f8;p=packages%2FVirtualBox.git diff --git a/VirtualBox-vboxsf.init b/VirtualBox-vboxsf.init old mode 100644 new mode 100755 index 097ae7a..0011bf0 --- a/VirtualBox-vboxsf.init +++ b/VirtualBox-vboxsf.init @@ -1,18 +1,13 @@ #!/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/vboxsf" VBOX_MODULE="vboxsf" # Get service config - may override defaults @@ -28,8 +23,23 @@ start() { } stop() { - # NOTE: rmmod will wait if device is in use, so automatic rmmod probably is 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/vboxsf }