#!/usr/bin/bash #byLeal #http://www.eall.com.br/blog set -e # /lib/svc/method/ganglia: start and stop the GANGLIA agent DAEMON='/usr/sbin/gmond' PIDFILE='/var/run/ganglia/gmond.pids' GANGLIA_CONFIG_FILE='/etc/ganglia/gmond.conf' GANGLIA_OPTS="--pid-file=$PIDFILE" test -x $DAEMON || exit 0 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) if [ ! -d /var/run/ganglia ]; then echo "Creating PID directory..." mkdir /var/run/ganglia && chown ganglia /var/run/ganglia fi if [ ! -d /var/log/ganglia ]; then echo "Creating LOG directory..." mkdir /var/log/ganglia && chown ganglia /var/log/ganglia fi echo -n "Starting ganglia agent: gmond" if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then echo " apparently already running." exit 0 fi if [ ! -s "$GANGLIA_CONFIG_FILE" ]; then echo " missing or empty config file $GANGLIA_CONFIG_FILE" exit 1 fi $DAEMON $GANGLIA_OPTS echo "." ;; stop) if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then echo -n "Stopping ganglia agent: ganglia_agentd" /usr/bin/kill -TERM `/usr/bin/cat $PIDFILE` rm -f $PIDFILE echo "." fi ;; restart) # set +e echo -n "Restarting ganglia agent: " if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then /usr/bin/kill -TERM `/usr/bin/cat $PIDFILE` rm -f $PIDFILE echo -n "." fi if [ ! -s "$GANGLIA_CONFIG_FILE" ]; then echo " missing or empty config file $GANGLIA_CONFIG_FILE" exit 1 fi sleep 5 $DAEMON $GANGLIA_OPTS if [ $? -ne 0 ]; then echo "start failed? $?" rm -f $PIDFILE else echo "." fi ;; *) echo "Usage: /lib/svc/method/ganglia {start|stop|restart}" exit 1 esac exit 0