-
-
Save wertercatt/a84e728ef0d87e6478f2ce072f36d715 to your computer and use it in GitHub Desktop.
Oracle VM VirtualBox startup script, Linux hosts.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
## @file | |
# Oracle VM VirtualBox startup script, Linux hosts. | |
# | |
# | |
# Copyright (C) 2006-2019 Oracle Corporation | |
# | |
# This file is part of VirtualBox Open Source Edition (OSE), as | |
# available from http://www.virtualbox.org. This file is free software; | |
# you can redistribute it and/or modify it under the terms of the GNU | |
# General Public License (GPL) as published by the Free Software | |
# Foundation, in version 2 as it comes in the "COPYING" file of the | |
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the | |
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. | |
# | |
PATH="/usr/bin:/bin:/usr/sbin:/sbin" | |
# The below is GNU-specific. See slightly further down for a version which | |
# works on Solaris and OS X. | |
TARGET=`readlink -e -- "${0}"` || exit 1 | |
MY_DIR="${TARGET%/[!/]*}" | |
# ( | |
# path="${0}" | |
# while test -n "${path}"; do | |
# # Make sure we have at least one slash and no leading dash. | |
# expr "${path}" : / > /dev/null || path="./${path}" | |
# # Filter out bad characters in the path name. | |
# expr "${path}" : ".*[*?<>\\]" > /dev/null && exit 1 | |
# # Catch embedded new-lines and non-existing (or path-relative) files. | |
# # $0 should always be absolute when scripts are invoked through "#!". | |
# test "`ls -l -d "${path}" 2> /dev/null | wc -l`" -eq 1 || exit 1 | |
# # Change to the folder containing the file to resolve relative links. | |
# folder=`expr "${path}" : "\(.*/\)[^/][^/]*/*$"` || exit 1 | |
# path=`expr "x\`ls -l -d "${path}"\`" : "[^>]* -> \(.*\)"` | |
# cd "${folder}" | |
# # If the last path was not a link then we are in the target folder. | |
# test -n "${path}" || pwd | |
# done | |
# ) | |
if test -f /usr/lib/virtualbox/VirtualBox && | |
test -x /usr/lib/virtualbox/VirtualBox; then | |
INSTALL_DIR=/usr/lib/virtualbox | |
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then | |
INSTALL_DIR="${MY_DIR}" | |
else | |
echo "Could not find VirtualBox installation. Please reinstall." | |
exit 1 | |
fi | |
# Note: This script must not fail if the module was not successfully installed | |
# because the user might not want to run a VM but only change VM params! | |
if [ "$1" = "shutdown" ]; then | |
SHUTDOWN="true" | |
elif ! lsmod|grep -q vboxdrv; then | |
cat << EOF | |
WARNING: The vboxdrv kernel module is not loaded. Either there is no module | |
available for the current kernel (`uname -r`) or it failed to | |
load. Please recompile the kernel module and install it by | |
sudo /sbin/vboxconfig | |
You will not be able to start VMs until this problem is fixed. | |
EOF | |
elif [ ! -c /dev/vboxdrv ]; then | |
cat << EOF | |
WARNING: The character device /dev/vboxdrv does not exist. Try | |
sudo /sbin/vboxconfig | |
and if that is not successful, try to re-install the package. | |
You will not be able to start VMs until this problem is fixed. | |
EOF | |
fi | |
if [ -f /etc/vbox/module_not_compiled ]; then | |
cat << EOF | |
WARNING: The compilation of the vboxdrv.ko kernel module failed during the | |
installation for some reason. Starting a VM will not be possible. | |
Please consult the User Manual for build instructions. | |
EOF | |
fi | |
SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'` | |
if [ -z "$SERVER_PID" ]; then | |
# Server not running yet/anymore, cleanup socket path. | |
# See IPC_GetDefaultSocketPath()! | |
if [ -n "$LOGNAME" ]; then | |
rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1 | |
else | |
rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1 | |
fi | |
fi | |
if [ "$SHUTDOWN" = "true" ]; then | |
if [ -n "$SERVER_PID" ]; then | |
kill -TERM $SERVER_PID | |
sleep 2 | |
fi | |
exit 0 | |
fi | |
APP=`basename $0` | |
case "$APP" in | |
VirtualBox|virtualbox) | |
exec "$INSTALL_DIR/VirtualBox" "$@" | |
;; | |
VirtualBoxVM|virtualboxvm) | |
exec "$INSTALL_DIR/VirtualBoxVM" "$@" | |
;; | |
VBoxManage|vboxmanage) | |
exec "$INSTALL_DIR/VBoxManage" "$@" | |
;; | |
VBoxSDL|vboxsdl) | |
exec "$INSTALL_DIR/VBoxSDL" "$@" | |
;; | |
VBoxVRDP|VBoxHeadless|vboxheadless) | |
exec "$INSTALL_DIR/VBoxHeadless" "$@" | |
;; | |
VBoxAutostart|vboxautostart) | |
exec "$INSTALL_DIR/VBoxAutostart" "$@" | |
;; | |
VBoxBalloonCtrl|vboxballoonctrl) | |
exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@" | |
;; | |
VBoxBugReport|vboxbugreport) | |
exec "$INSTALL_DIR/VBoxBugReport" "$@" | |
;; | |
VBoxDTrace|vboxdtrace) | |
exec "$INSTALL_DIR/VBoxDTrace" "$@" | |
;; | |
vboxwebsrv) | |
exec "$INSTALL_DIR/vboxwebsrv" "$@" | |
;; | |
*) | |
echo "Unknown application - $APP" | |
exit 1 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment