diff options
Diffstat (limited to 'debian/virtualbox-guest-utils.init')
-rw-r--r-- | debian/virtualbox-guest-utils.init | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/debian/virtualbox-guest-utils.init b/debian/virtualbox-guest-utils.init new file mode 100644 index 00000000..7545bd81 --- /dev/null +++ b/debian/virtualbox-guest-utils.init @@ -0,0 +1,102 @@ +#!/bin/sh +# (C) 2007 Michael Meskes <meskes@debian.org> + +### BEGIN INIT INFO +# Provides: vboxguest virtualbox-guest-utils +# Short-Description: VirtualBox Linux Additions +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +PATH=$PATH:/bin:/sbin:/usr/sbin + +. /lib/lsb/init-functions + +test -d /usr/share/doc/virtualbox-guest-utils -a -x /usr/sbin/VBoxService || exit 0 + +in_virtual_machine() +{ + if [ -z "$(lspci -d 80ee:cafe)" ]; then + log_warning_msg "VirtualBox Additions disabled, not in a Virtual Machine" + return 1 + fi + + return 0 +} + +running() +{ + lsmod | grep -q "$1[^_-]" +} + +case "$1" in + start) + in_virtual_machine || exit 0 + log_begin_msg "Starting VirtualBox Additions" + + if ! running vboxguest; then + if ! modprobe vboxguest > /dev/null 2>&1; then + if ! find /lib/modules/`uname -r` -name "vboxguest\.*" 2>/dev/null|grep -q vboxguest; then + log_failure_msg "No suitable module for running kernel found" + else + log_failure_msg "modprobe vboxguest failed. Please use 'dmesg' to find out why" + fi + log_end_msg 1 + return 1 + fi + fi + + if ! running vboxsf; then + if ! modprobe vboxsf > /dev/null 2>&1; then + if ! find /lib/modules/`uname -r` -name "vboxsf\.*" 2>/dev/null|grep -q vboxsf; then + log_failure_msg "No suitable module for running kernel found" + else + log_failure_msg "modprobe vboxsf failed. Please use 'dmesg' to find out why" + fi + log_end_msg 1 + return 1 + fi + fi + /usr/bin/VBoxClient --vmsvga + start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/VBoxService + if [ $? -ne 0 ]; then + log_end_msg 1 + exit 1 + fi + + log_end_msg 0 + ;; + + stop) + in_virtual_machine || exit 0 + log_begin_msg "Stopping VirtualBox Additions" + + start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/VBoxService + if [ $? -ne 0 ]; then + log_end_msg 1 + exit 1 + fi + + log_end_msg 0 + ;; + + restart|force-reload) + $0 stop && $0 start + ;; + + status) + if ! pgrep -x VBoxService > /dev/null; then + echo "VBoxService daemon isn't running" + exit 3 + fi + + exit 0 + ;; + + *) + echo "Usage: $0 {start|stop|restart|force-reload|status}" + exit 1 + ;; +esac |