Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

107 lines (89 sloc) 1.986 kb
#! /bin/bash
#
# squeezed Start/Stop the memory ballooning daemon
#
# chkconfig: 2345 22 77
# description: Memory ballooning daemon
# processname: squeezed
# pidfile: /var/run/squeezed.pid
# Source function library.
. /etc/init.d/functions
# Memory ballooning daemon
# location of the executable:
SQUEEZED="@LIBEXECDIR@/squeezed"
# pidfile:
PID_FILE="/var/run/squeezed.pid"
# lock file
SUBSYS_FILE="/var/lock/subsys/squeezed"
# Source function library.
. /etc/init.d/functions
# Enable core dumping
ulimit -c unlimited
start() {
echo -n $"Starting the memory ballooning daemon: "
# XXX: remove when domain 0 advertises ballooning via guest agent
xenstore-write /local/domain/0/control/feature-balloon 1
if [ -e ${SUBSYS_FILE} ]; then
if [ -e ${PID_FILE} ] && [ -e /proc/`cat ${PID_FILE}` ]; then
echo -n $"cannot start squeezed: already running."
failure $"cannot start squeezed: already running."
echo
return 1
fi
fi
xenstore-rm /squeezed
${SQUEEZED} -daemon -pidfile ${PID_FILE} >/dev/null 2>&1 </dev/null
MAX_RETRIES=30
RETRY=0
while [ ${RETRY} -lt ${MAX_RETRIES} ]; do
PID=$(cat ${PID_FILE} 2>/dev/null)
kill -0 ${PID} 2> /dev/null
if [ $? -eq 0 ]; then
touch ${SUBSYS_FILE}
success
echo
return 0
fi
sleep 1
echo -n .
RETRY=$(( ${RETRY} + 1 ))
done
echo -n $"failed to start squeezed."
failure $"failed to start squeezed."
killproc squeezed
rm -f ${SUBSYS_FILE} ${PID_FILE}
echo
return 1
}
stop() {
echo -n $"Stopping the memory ballooning daemon: "
if [ ! -e ${SUBSYS_FILE} ]; then
echo -n $"cannot stop squeezed: squeezed is not running."
failure $"cannot stop squeezed: squeezed is not running."
echo
return 1;
fi
killproc squeezed
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f ${SUBSYS_FILE}
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
Jump to Line
Something went wrong with that request. Please try again.