blob: ccefe072328e9e88c6b934b638d2f7187d051654 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
#!/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
|