VBox.sh revision 332d68e9666b04a5aa788a586d9f4c6b1f19c700
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#!/bin/sh
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Sun VirtualBox
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Copyright (C) 2006-2009 Sun Microsystems, Inc.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# available from http://www.virtualbox.org. This file is free software;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# you can redistribute it and/or modify it under the terms of the GNU
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# General Public License (GPL) as published by the Free Software
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync#
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# additional information or have any questions.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncPATH="/usr/bin:/bin:/usr/sbin:/sbin"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncCONFIG="/etc/vbox/vbox.cfg"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncif [ ! -r "$CONFIG" ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync echo "Could not find VirtualBox installation. Please reinstall."
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exit 1
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncfi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync. "$CONFIG"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# Note: This script must not fail if the module was not successfully installed
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# because the user might not want to run a VM but only change VM params!
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
48d60b042893290a747d3abeda71a3085d9133fdvboxsyncif [ "$1" = "shutdown" ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync SHUTDOWN="true"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncelif ! lsmod|grep -q vboxdrv; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync cat << EOF
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncWARNING: The vboxdrv kernel module is not loaded. Either there is no module
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync available for the current kernel (`uname -r`) or it failed to
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync load. Please recompile the kernel module and install it by
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync sudo /etc/init.d/vboxdrv setup
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync You will not be able to start VMs until this problem is fixed.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncEOF
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncelif [ ! -c /dev/vboxdrv ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync cat << EOF
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncWARNING: The character device /dev/vboxdrv does not exist. Try
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync sudo /etc/init.d/vboxdrv restart
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync and if that is not successful, try to re-install the package.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync You will not be able to start VMs until this problem is fixed.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncEOF
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncfi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncif [ -f /etc/vbox/module_not_compiled ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync cat << EOF
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncWARNING: The compilation of the vboxdrv.ko kernel module failed during the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync installation for some reason. Starting a VM will not be possible.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync Please consult the User Manual for build instructions.
17c6e5e8177d068d1bc6af875d1610718efcfdb4vboxsyncEOF
17c6e5e8177d068d1bc6af875d1610718efcfdb4vboxsyncfi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsyncSERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsyncif [ -z "$SERVER_PID" ]; then
940dbfa4936f2e3966e9e874c4886709f0c75b44vboxsync # Server not running yet/anymore, cleanup socket path.
940dbfa4936f2e3966e9e874c4886709f0c75b44vboxsync # See IPC_GetDefaultSocketPath()!
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsync if [ -n "$LOGNAME" ]; then
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsync rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
48d60b042893290a747d3abeda71a3085d9133fdvboxsync else
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync fi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncfi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncif [ "$SHUTDOWN" = "true" ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync if [ -n "$SERVER_PID" ]; then
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync kill -TERM $SERVER_PID
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync sleep 2
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsync fi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exit 0
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncfi
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncAPP=`which $0`
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncAPP=`basename $APP`
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncAPP=${APP##/*/}
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsynccase "$APP" in
10eaaac806009b8336cc5d746fe5072f6c9f58c0vboxsync VirtualBox)
10eaaac806009b8336cc5d746fe5072f6c9f58c0vboxsync exec "$INSTALL_DIR/VirtualBox" "$@"
c50100d1513854735d4e3593b3b385c007f6d8b6vboxsync ;;
2a08e12d5dcc1bb5057a9620e87ad361d41a1c1fvboxsync VBoxManage)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exec "$INSTALL_DIR/VBoxManage" "$@"
6c83eb6b98d1dd1b1d9795c16801ee2f53d2cc31vboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxSDL)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exec "$INSTALL_DIR/VBoxSDL" "$@"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxVRDP)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exec "$INSTALL_DIR/VBoxHeadless" "$@"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VBoxHeadless)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exec "$INSTALL_DIR/VBoxHeadless" "$@"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync vboxwebsrv)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync exec "$INSTALL_DIR/vboxwebsrv" "$@"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync *)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync echo "Unknown application - $APP"
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync ;;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncesac
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync