VirtualBox

source: vbox/trunk/src/VBox/Installer/linux/VBox.sh@ 46712

Last change on this file since 46712 was 44966, checked in by vboxsync, 12 years ago

Installer/linux: fix r83769 and VBox.sh.

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.8 KB
Line 
1#!/bin/sh
2#
3# Oracle VM VirtualBox startup script, Linux hosts.
4#
5# Copyright (C) 2006-2012 Oracle Corporation
6#
7# This file is part of VirtualBox Open Source Edition (OSE), as
8# available from http://www.virtualbox.org. This file is free software;
9# you can redistribute it and/or modify it under the terms of the GNU
10# General Public License (GPL) as published by the Free Software
11# Foundation, in version 2 as it comes in the "COPYING" file of the
12# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
13# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
14#
15
16PATH="/usr/bin:/bin:/usr/sbin:/sbin"
17CONFIG="/etc/vbox/vbox.cfg"
18
19test -r "${CONFIG}" &&
20 . "${CONFIG}"
21test -z "${INSTALL_DIR}" &&
22 if test -f /usr/lib/virtualbox/VirtualBox &&
23 test -x /usr/lib/virtualbox/VirtualBox; then
24 INSTALL_DIR=/usr/lib/virtualbox
25 else
26 echo "Could not find VirtualBox installation. Please reinstall."
27 exit 1
28 fi
29
30# Note: This script must not fail if the module was not successfully installed
31# because the user might not want to run a VM but only change VM params!
32
33if [ "$1" = "shutdown" ]; then
34 SHUTDOWN="true"
35elif ! lsmod|grep -q vboxdrv; then
36 cat << EOF
37WARNING: The vboxdrv kernel module is not loaded. Either there is no module
38 available for the current kernel (`uname -r`) or it failed to
39 load. Please recompile the kernel module and install it by
40
41 sudo /etc/init.d/vboxdrv setup
42
43 You will not be able to start VMs until this problem is fixed.
44EOF
45elif [ ! -c /dev/vboxdrv ]; then
46 cat << EOF
47WARNING: The character device /dev/vboxdrv does not exist. Try
48
49 sudo /etc/init.d/vboxdrv restart
50
51 and if that is not successful, try to re-install the package.
52
53 You will not be able to start VMs until this problem is fixed.
54EOF
55fi
56
57if [ -f /etc/vbox/module_not_compiled ]; then
58 cat << EOF
59WARNING: The compilation of the vboxdrv.ko kernel module failed during the
60 installation for some reason. Starting a VM will not be possible.
61 Please consult the User Manual for build instructions.
62EOF
63fi
64
65SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
66if [ -z "$SERVER_PID" ]; then
67 # Server not running yet/anymore, cleanup socket path.
68 # See IPC_GetDefaultSocketPath()!
69 if [ -n "$LOGNAME" ]; then
70 rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
71 else
72 rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
73 fi
74fi
75
76if [ "$SHUTDOWN" = "true" ]; then
77 if [ -n "$SERVER_PID" ]; then
78 kill -TERM $SERVER_PID
79 sleep 2
80 fi
81 exit 0
82fi
83
84run_in_group()
85{
86 if id -G -n $(id -u -n) | tr ' ' '\n' | grep -q "vboxusers"; then
87 AWK_SCRIPT='BEGIN { for ( i=1; i < ARGC; i++) {gsub(/'\''/, "'\''\\'\''", ARGV[i]); printf "'\''%s'\'' ", ARGV[i]}}'
88 AWK_SCRIPT="BEGIN { for ( i=1; i < ARGC; i++) {gsub(/'/, \"'\\\\'\", ARGV[i]); printf \"'%s' \", ARGV[i]}}"
89 ARGS="$(awk "$AWK_SCRIPT" "$@")"
90 echo ${ARGS} ";" "exit" | exec newgrp vboxusers
91 else
92 exec "$@"
93 fi
94}
95
96APP=`basename $0`
97case "$APP" in
98 VirtualBox|virtualbox)
99 run_in_group "$INSTALL_DIR/VirtualBox" "$@"
100 ;;
101 VBoxManage|vboxmanage)
102 run_in_group "$INSTALL_DIR/VBoxManage" "$@"
103 ;;
104 VBoxSDL|vboxsdl)
105 run_in_group "$INSTALL_DIR/VBoxSDL" "$@"
106 ;;
107 VBoxVRDP|VBoxHeadless|vboxheadless)
108 run_in_group "$INSTALL_DIR/VBoxHeadless" "$@"
109 ;;
110 VBoxAutostart|vboxautostart)
111 run_in_group "$INSTALL_DIR/VBoxAutostart" "$@"
112 ;;
113 VBoxBalloonCtrl|vboxballoonctrl)
114 run_in_group "$INSTALL_DIR/VBoxBalloonCtrl" "$@"
115 ;;
116 vboxwebsrv)
117 run_in_group "$INSTALL_DIR/vboxwebsrv" "$@"
118 ;;
119 *)
120 echo "Unknown application - $APP"
121 exit 1
122 ;;
123esac
124exit 0
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette