vboxdrv.sh.in revision 3fc17454dc709b89e326d2cbe0ec35a607154f08
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync#! /bin/sh
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Oracle VM VirtualBox
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Linux kernel module init script
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync#
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Copyright (C) 2006-2010 Oracle Corporation
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# available from http://www.virtualbox.org. This file is free software;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# you can redistribute it and/or modify it under the terms of the GNU
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# General Public License (GPL) as published by the Free Software
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync#
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# chkconfig: 35 20 80
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# description: VirtualBox Linux kernel module
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync#
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync### BEGIN INIT INFO
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Provides: vboxdrv
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Required-Start: $syslog
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Required-Stop:
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Default-Start: 2 3 4 5
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Default-Stop: 0 1 6
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# Short-Description: VirtualBox Linux kernel module
0fc8a97f9a19a44f1ad4670454edf26d80c42281vboxsync### END INIT INFO
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncPATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncDEVICE=/dev/vboxdrv
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncLOG="/var/log/vbox-install.log"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncNOLSB=%NOLSB%
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncDEBIAN=%DEBIAN%
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncMODPROBE=/sbin/modprobe
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncif $MODPROBE -c | grep -q '^allow_unsupported_modules *0'; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync MODPROBE="$MODPROBE --allow-unsupported-modules"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncfi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync[ -f /lib/lsb/init-functions ] || NOLSB=yes
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync[ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncif [ -n "$INSTALL_DIR" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync VBOXMANAGE="$INSTALL_DIR/VBoxManage"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync DODKMS="$INSTALL_DIR/src/vboxhost/do_dkms"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXDRV="$INSTALL_DIR/src/vboxhost/vboxdrv/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxhost/vboxnetflt/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXNETADP="$INSTALL_DIR/src/vboxhost/vboxnetadp/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXPCI="$INSTALL_DIR/src/vboxhost/vboxpci/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncelse
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync VBOXMANAGE="/usr/lib/%PACKAGE%/VBoxManage"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync DODKMS="/usr/share/%PACKAGE%/src/vboxhost/do_dkms"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXDRV="/usr/share/%PACKAGE%/src/vboxhost/vboxdrv/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXNETFLT="/usr/share/%PACKAGE%/src/vboxhost/vboxnetflt/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXNETADP="/usr/share/%PACKAGE%/src/vboxhost/vboxnetadp/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync BUILDVBOXPCI="/usr/share/%PACKAGE%/src/vboxhost/vboxpci/build_in_tmp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncfi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# silently exit if the package was uninstalled but not purged,
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# applies to Debian packages only
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync[ -z "$DEBIAN" -o -x $VBOXMANAGE -a -x $BUILDVBOXDRV ] || exit 0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncif [ -n "$NOLSB" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -f /etc/redhat-release ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync system=redhat
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ -f /etc/SuSE-release ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync system=suse
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ -f /etc/gentoo-release ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync system=gentoo
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncfi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync[ -r /etc/default/%PACKAGE% ] && . /etc/default/%PACKAGE%
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncif [ -z "$NOLSB" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync . /lib/lsb/init-functions
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo ""
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync log_failure_msg "$1"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync log_end_msg 0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync log_daemon_msg "$@"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncelse
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ "$system" = "redhat" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync . /etc/init.d/functions
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo -n " "
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo_failure
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo " ($1)"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo -n " "
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo_success
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ "$system" = "suse" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync . /etc/rc.status
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rc_failed 1
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rc_status -v
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo " ($1)"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rc_reset
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rc_status -v
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ "$system" = "gentoo" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -f /sbin/functions.sh ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync . /sbin/functions.sh
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ -f /etc/init.d/functions.sh ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync . /etc/init.d/functions.sh
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync eerror "$1"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync eend "$?"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ebegin "$1"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ "`which $0`" = "/sbin/rc" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync shift
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync else
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync fail_msg() {
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync echo " ...failed!"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo " ($1)"
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo " ...done."
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync }
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ "$system" != "gentoo" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg() {
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync [ -z "${1:-}" ] && return 1
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -z "${2:-}" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo -n "$1"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync else
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo -n "$1: $2"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync }
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync fi
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsyncfi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsyncfailure()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg "$1"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync exit 0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncrunning()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync lsmod | grep -q "$1[^_-]"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstart()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Starting VirtualBox kernel modules"
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if [ -d /proc/xen ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Running VirtualBox in a Xen environment is not supported"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! running vboxdrv; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! rm -f $DEVICE; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot remove $DEVICE"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync sleep .2
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # ensure the character special exists
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ ! -c $DEVICE ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync MAJOR=`sed -n 's;\([0-9]\+\) vboxdrv;\1;p' /proc/devices`
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ ! -z "$MAJOR" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync MINOR=0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync else
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync MINOR=`sed -n 's;\([0-9]\+\) vboxdrv;\1;p' /proc/misc`
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ ! -z "$MINOR" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync MAJOR=10
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if [ -z "$MAJOR" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rmmod vboxdrv 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot locate the VirtualBox device"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! mknod -m 0660 $DEVICE c $MAJOR $MINOR 2>/dev/null; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rmmod vboxdrv 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot create device $DEVICE with major $MAJOR and minor $MINOR"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # ensure permissions
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! chown :%GROUP% $DEVICE 2>/dev/null; then
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync rmmod vboxpci 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rmmod vboxnetadp 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rmmod vboxnetflt 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rmmod vboxdrv 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot change group %GROUP% for device $DEVICE"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $MODPROBE vboxnetadp > /dev/null 2>&1; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "modprobe vboxnetadp failed. Please use 'dmesg' to find out why"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $MODPROBE vboxpci > /dev/null 2>&1; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "modprobe vboxpci failed. Please use 'dmesg' to find out why"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # Create the /dev/vboxusb directory if the host supports that method
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # of USB access. The USB code checks for the existance of that path.
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if grep -q usb_device /proc/devices; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync mkdir -p -m 0750 /dev/vboxusb 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync chown root:vboxusers /dev/vboxusb 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstop()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Stopping VirtualBox kernel modules"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxpci; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! rmmod vboxpci 2>/dev/null; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot unload module vboxpci"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxnetadp; then
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if ! rmmod vboxnetadp 2>/dev/null; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot unload module vboxnetadp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxdrv; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxnetflt; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! rmmod vboxnetflt 2>/dev/null; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Cannot unload module vboxnetflt"
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync fi
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync fi
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync if ! rmmod vboxdrv 2>/dev/null; then
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync failure "Cannot unload module vboxdrv"
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync fi
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync if ! rm -f $DEVICE; then
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync failure "Cannot unlink $DEVICE"
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync fi
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync fi
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync succ_msg
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync}
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync# enter the following variables in /etc/default/%PACKAGE%:
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync# SHUTDOWN_USERS="foo bar"
97803398b9554900b4dd45f88b2eb2056e2c606bvboxsync# check for running VMs of user foo and user bar
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# SHUTDOWN=poweroff
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# SHUTDOWN=acpibutton
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# SHUTDOWN=savestate
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# select one of these shutdown methods for running VMs
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstop_vms()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync wait=0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for i in $SHUTDOWN_USERS; do
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # don't create the ipcd directory with wrong permissions!
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if [ -d /tmp/.vbox-$i-ipc ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync export VBOX_IPC_SOCKETID="$i"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync VMS=`$VBOXMANAGE --nologo list runningvms | sed -e 's/^".*".*{\(.*\)}/\1/' 2>/dev/null`
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -n "$VMS" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ "$SHUTDOWN" = "poweroff" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Powering off remaining VMs"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for v in $VMS; do
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync $VBOXMANAGE --nologo controlvm $v poweroff
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync elif [ "$SHUTDOWN" = "acpibutton" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Sending ACPI power button event to remaining VMs"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for v in $VMS; do
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync $VBOXMANAGE --nologo controlvm $v acpipowerbutton
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync wait=30
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync elif [ "$SHUTDOWN" = "savestate" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Saving state of remaining VMs"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for v in $VMS; do
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync $VBOXMANAGE --nologo controlvm $v savestate
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # wait for some seconds when doing ACPI shutdown
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ "$wait" -ne 0 ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Waiting for $wait seconds for VM shutdown"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync sleep $wait
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync# setup_script
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncsetup()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Uninstalling old VirtualBox DKMS kernel modules"
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync $DODKMS uninstall > $LOG
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync succ_msg
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync begin_msg "Removing old VirtualBox pci kernel module"
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|xargs rm -f 2>/dev/null
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync succ_msg
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync fi
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync begin_msg "Removing old VirtualBox netadp kernel module"
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync succ_msg
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync fi
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync begin_msg "Removing old VirtualBox netflt kernel module"
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync succ_msg
25be0b1daccd180b98ac7bd0a81e2acb75db6146vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Removing old VirtualBox kernel module"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Trying to register the VirtualBox kernel modules using DKMS"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $DODKMS install >> $LOG; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fail_msg "Failed, trying without DKMS"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync begin_msg "Recompiling VirtualBox kernel modules"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $BUILDVBOXDRV \
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync --save-module-symvers /tmp/vboxdrv-Module.symvers \
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync --no-print-directory install >> $LOG 2>&1; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync failure "Look at $LOG to find out what went wrong"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $BUILDVBOXNETFLT \
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync --use-module-symvers /tmp/vboxdrv-Module.symvers \
32b1164f35483be483177be7b5235002a4a5afbevboxsync --no-print-directory install >> $LOG 2>&1; then
32b1164f35483be483177be7b5235002a4a5afbevboxsync failure "Look at $LOG to find out what went wrong"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if ! $BUILDVBOXNETADP \
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync --use-module-symvers /tmp/vboxdrv-Module.symvers \
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync --no-print-directory install >> $LOG 2>&1; then
6c28ed70192c3f2d1edf978697ff0ee0276bf0eevboxsync failure "Look at $LOG to find out what went wrong"
32b1164f35483be483177be7b5235002a4a5afbevboxsync fi
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync if ! $BUILDVBOXPCI \
6c28ed70192c3f2d1edf978697ff0ee0276bf0eevboxsync --use-module-symvers /tmp/vboxdrv-Module.symvers \
32b1164f35483be483177be7b5235002a4a5afbevboxsync --no-print-directory install >> $LOG 2>&1; then
dc959f60f6d3e0cba86f7da4d39aa475913a7e10vboxsync failure "Look at $LOG to find out what went wrong"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync rm -f /etc/vbox/module_not_compiled
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync succ_msg
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync start
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncdmnstatus()
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync{
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxdrv; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync str="vboxdrv"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxnetflt; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync str="$str, vboxnetflt"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxnetadp; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync str="$str, vboxnetadp"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if running vboxpci; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync str="$str, vboxpci"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo "VirtualBox kernel modules ($str) are loaded."
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for i in $SHUTDOWN_USERS; do
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync # don't create the ipcd directory with wrong permissions!
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -d /tmp/.vbox-$i-ipc ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync export VBOX_IPC_SOCKETID="$i"
54d13d84f69d613c39bf7672d4095c8d863176efvboxsync VMS=`$VBOXMANAGE --nologo list runningvms | sed -e 's/^".*".*{\(.*\)}/\1/' 2>/dev/null`
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync if [ -n "$VMS" ]; then
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo "The following VMs are currently running:"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync for v in $VMS; do
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo " $v"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync done
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync else
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo "VirtualBox kernel module is not loaded."
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync fi
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync}
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsynccase "$1" in
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstart)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync start
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstop)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop_vms
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstop_vms)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop_vms
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncrestart)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop && start
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncforce-reload)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync stop
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync start
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncsetup)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync setup
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncstatus)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync dmnstatus
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync ;;
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync*)
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status|setup}"
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync exit 1
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncesac
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsyncexit 0
74fdb8a41a8fdc04e44a1ecaeefb70ed9a7a1e47vboxsync