VirtualBox

source: vbox/trunk/src/VBox/Installer/solaris/smf-vboxballoonctrl.sh@ 44336

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

Frontends/VBoxBalloonCtrl: add logic to prevent deflating the balloon if there is not sufficient host memory free, add docs

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1#!/sbin/sh
2# $Id: smf-vboxballoonctrl.sh 44336 2013-01-23 13:51:33Z vboxsync $
3
4# Copyright (C) 2008-2013 Oracle Corporation
5#
6# This file is part of VirtualBox Open Source Edition (OSE), as
7# available from http://www.virtualbox.org. This file is free software;
8# you can redistribute it and/or modify it under the terms of the GNU
9# General Public License (GPL) as published by the Free Software
10# Foundation, in version 2 as it comes in the "COPYING" file of the
11# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
12# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
13#
14
15#
16# smf-vboxballoonctrl method
17#
18# Argument is the method name (start, stop, ...)
19
20. /lib/svc/share/smf_include.sh
21
22VW_OPT="$1"
23VW_EXIT=0
24
25case $VW_OPT in
26 start)
27 if [ ! -x /opt/VirtualBox/VBoxBalloonCtrl ]; then
28 echo "ERROR: /opt/VirtualBox/VBoxBalloonCtrl does not exist."
29 return $SMF_EXIT_ERR_CONFIG
30 fi
31
32 if [ ! -f /opt/VirtualBox/VBoxBalloonCtrl ]; then
33 echo "ERROR: /opt/VirtualBox/VBoxBalloonCtrl does not exist."
34 return $SMF_EXIT_ERR_CONFIG
35 fi
36
37 # Get svc configuration
38 VBOXWATCHDOG_USER=`/usr/bin/svcprop -p config/user $SMF_FMRI 2>/dev/null`
39 [ $? != 0 ] && VBOXWATCHDOG_USER=
40 VBOXWATCHDOG_BALLOON_INTERVAL=`/usr/bin/svcprop -p config/balloon_interval $SMF_FMRI 2>/dev/null`
41 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_INTERVAL=
42 VBOXWATCHDOG_BALLOON_INCREMENT=`/usr/bin/svcprop -p config/balloon_increment $SMF_FMRI 2>/dev/null`
43 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_INCREMENT=
44 VBOXWATCHDOG_BALLOON_DECREMENT=`/usr/bin/svcprop -p config/balloon_decrement $SMF_FMRI 2>/dev/null`
45 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_DECREMENT=
46 VBOXWATCHDOG_BALLOON_LOWERLIMIT=`/usr/bin/svcprop -p config/balloon_lowerlimit $SMF_FMRI 2>/dev/null`
47 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_LOWERLIMIT=
48 VBOXWATCHDOG_BALLOON_SAFETYMARGIN=`/usr/bin/svcprop -p config/balloon_safetymargin $SMF_FMRI 2>/dev/null`
49 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_SAFETYMARGIN=
50 VBOXWATCHDOG_ROTATE=`/usr/bin/svcprop -p config/logrotate $SMF_FMRI 2>/dev/null`
51 [ $? != 0 ] && VBOXWATCHDOG_ROTATE=
52 VBOXWATCHDOG_LOGSIZE=`/usr/bin/svcprop -p config/logsize $SMF_FMRI 2>/dev/null`
53 [ $? != 0 ] && VBOXWATCHDOG_LOGSIZE=
54 VBOXWATCHDOG_LOGINTERVAL=`/usr/bin/svcprop -p config/loginterval $SMF_FMRI 2>/dev/null`
55 [ $? != 0 ] && VBOXWATCHDOG_LOGINTERVAL=
56
57 # Handle legacy parameters, do not add any further ones unless absolutely necessary.
58 if [ -z "$VBOXWATCHDOG_BALLOON_INTERVAL" ]; then
59 VBOXWATCHDOG_BALLOON_INTERVAL=`/usr/bin/svcprop -p config/interval $SMF_FMRI 2>/dev/null`
60 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_INTERVAL=
61 fi
62 if [ -z "$VBOXWATCHDOG_BALLOON_INCREMENT" ]; then
63 VBOXWATCHDOG_BALLOON_INCREMENT=`/usr/bin/svcprop -p config/increment $SMF_FMRI 2>/dev/null`
64 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_INCREMENT=
65 fi
66 if [ -z "$VBOXWATCHDOG_BALLOON_DECREMENT" ]; then
67 VBOXWATCHDOG_BALLOON_DECREMENT=`/usr/bin/svcprop -p config/decrement $SMF_FMRI 2>/dev/null`
68 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_DECREMENT=
69 fi
70 if [ -z "$VBOXWATCHDOG_BALLOON_LOWERLIMIT" ]; then
71 VBOXWATCHDOG_BALLOON_LOWERLIMIT=`/usr/bin/svcprop -p config/lowerlimit $SMF_FMRI 2>/dev/null`
72 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_LOWERLIMIT=
73 fi
74 if [ -z "$VBOXWATCHDOG_BALLOON_SAFETYMARGIN" ]; then
75 VBOXWATCHDOG_BALLOON_SAFETYMARGIN=`/usr/bin/svcprop -p config/safetymargin $SMF_FMRI 2>/dev/null`
76 [ $? != 0 ] && VBOXWATCHDOG_BALLOON_SAFETYMARGIN=
77 fi
78
79 # Provide sensible defaults
80 [ -z "$VBOXWATCHDOG_USER" ] && VBOXWATCHDOG_USER=root
81
82 # Assemble the parameter list
83 PARAMS="--background"
84 [ -n "$VBOXWATCHDOG_BALLOON_INTERVAL" ] && PARAMS="$PARAMS --balloon-interval \"$VBOXWATCHDOG_BALLOON_INTERVAL\""
85 [ -n "$VBOXWATCHDOG_BALLOON_INCREMENT" ] && PARAMS="$PARAMS --balloon-inc \"$VBOXWATCHDOG_BALLOON_INCREMENT\""
86 [ -n "$VBOXWATCHDOG_BALLOON_DECREMENT" ] && PARAMS="$PARAMS --balloon-dec \"$VBOXWATCHDOG_BALLOON_DECREMENT\""
87 [ -n "$VBOXWATCHDOG_BALLOON_LOWERLIMIT" ] && PARAMS="$PARAMS --balloon-lower-limit \"$VBOXWATCHDOG_BALLOON_LOWERLIMIT\""
88 [ -n "$VBOXWATCHDOG_BALLOON_SAFETYMARGIN" ] && PARAMS="$PARAMS --balloon-safety-margin \"$VBOXWATCHDOG_BALLOON_SAFETYMARGIN\""
89 [ -n "$VBOXWATCHDOG_ROTATE" ] && PARAMS="$PARAMS -R \"$VBOXWATCHDOG_ROTATE\""
90 [ -n "$VBOXWATCHDOG_LOGSIZE" ] && PARAMS="$PARAMS -S \"$VBOXWATCHDOG_LOGSIZE\""
91 [ -n "$VBOXWATCHDOG_LOGINTERVAL" ] && PARAMS="$PARAMS -I \"$VBOXWATCHDOG_LOGINTERVAL\""
92
93 exec su - "$VBOXWATCHDOG_USER" -c "/opt/VirtualBox/VBoxBalloonCtrl $PARAMS"
94
95 VW_EXIT=$?
96 if [ $VW_EXIT != 0 ]; then
97 echo "VBoxBalloonCtrl failed with $VW_EXIT."
98 VW_EXIT=1
99 fi
100 ;;
101 stop)
102 # Kill service contract
103 smf_kill_contract $2 TERM 1
104 ;;
105 *)
106 VW_EXIT=$SMF_EXIT_ERR_CONFIG
107 ;;
108esac
109
110exit $VW_EXIT
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