X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=5e7c807a1a9caf9eaaefb3c5e30a48121724b970;hp=30f476c4c90f7ea1481e510ec595b887a72b73b0;hb=a4ecc329533467739c63ede3348cbb25b3d6f94d;hpb=e855fb62a06c946dbb8e81b68a9387dd8e226249 diff --git a/autoconfig.functions b/autoconfig.functions index 30f476c..5e7c807 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -1439,11 +1439,18 @@ config_services(){ SERVICE="$(getbootparam 'services' 2>>$DEBUG)" SERVICELIST=$(echo "$SERVICE" | sed 's/,/\\n/g') SERVICENL=$(echo "$SERVICE" | sed 's/,/ /g') - einfo "Starting service(s) ${SERVICENL} in background." for service in $(echo -e $SERVICELIST) ; do - /etc/init.d/${service} start >>$DEBUG & + # support running (custom) init scripts in non-blocking mode + # if they contain the keyword "DO_NO_RUN_IN_BACKGROUND". + if grep -q 'DO_NO_RUN_IN_BACKGROUND' "/etc/init.d/${service}" 2>>$DEBUG ; then + einfo "Starting service ${service}." + /etc/init.d/${service} start >>$DEBUG + else + einfo "Starting service ${service} in background." + /etc/init.d/${service} start >>$DEBUG & + fi done - [ "$?" == "0" ] ; eend $? + eend $? fi } # }}} @@ -2293,6 +2300,45 @@ fi # checkbootparam "BOOT_IMAGE=debian2hd } # }}} +config_virtualbox_shared_folders() { +if [ -r /proc/acpi/battery/BAT0/info ] && grep -q 'OEM info:.*innotek' /proc/acpi/battery/BAT0/info ; then + einfo "VirtualBox detected, trying to set up Shared Folders." + if ! modprobe -l | grep -q vboxsf.ko ; then + ewarn "vboxsf driver not present, not setting up VirtualBox Shared Folders." + eend 0 + elif ! [ -x /usr/sbin/VBoxService ] ; then + ewarn "virtualbox-guest-utils not installed, not setting up VirtualBox Shared Folders." + eend 0 + else + eindent + + einfo "Loading vboxsf driver." + lsmod | grep -q vboxsf || modprobe vboxsf + eend $? + + einfo "Adjusting /dev/vboxguest." + chown root:vboxsf /dev/vboxguest + chmod 660 /dev/vboxguest + eend $? + + if [ -n "$CONFIG_FSTAB_USER" ] ; then + fstabuser="$CONFIG_FSTAB_USER" + else + fstabuser=$(getent passwd 1000 | cut -d: -f1) + fi + einfo "Adding $fstabuser to group vboxsf." + adduser grml vboxsf &>/dev/null + eend $? + + einfo "Starting VBoxService." + VBoxService >/dev/null & + eend $? + + eoutdent + fi +fi +} + # {{{ Support customization config_distri(){ if checkbootparam 'distri'; then