#!/bin/sh # # mcollective Application Server for STOMP based agents # # chkconfig: 345 24 76 # # description: mcollective lets you build powerful Stomp compatible middleware clients in ruby without having to worry too # much about all the setup and management of a Stomp connection, it also provides stats, logging and so forth # as a bonus. # ### BEGIN INIT INFO # Provides: mcollective # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO

mcollectived=“/usr/sbin/mcollectived”

# Lockfile if [ -d /var/lock/subsys ]; then

# RedHat/CentOS/etc who use subsys
lock="/var/lock/subsys/mcollective"

else

# The rest of them
lock="/var/lock/mcollective"

fi

# PID directory pidfile=“/var/run/mcollectived.pid”

# Source function library. . /lib/lsb/init-functions

# Check that binary exists if ! [ -f $mcollectived ] then

echo "mcollectived binary not found"
exit 0

fi

# See how we were called. case “$1” in

start)
    echo -n "Starting mcollective: "

    if [ -f ${lock} ]; then
        # we were not shut down correctly
        if [ -s ${pidfile} ]; then
            kill `cat ${pidfile}` >/dev/null 2>&1
        fi
        rm -f ${pidfile}

        rm -f ${lock}
        sleep 2
    fi

    rm -f ${pidfile}

    ${mcollectived} --pid=${pidfile} --config="/etc/mcollective/server.cfg"
    if [ $? = 0 ]; then
        log_success_msg
        touch $lock
        exit 0
    else
        log_failure_msg
        exit 1
    fi
    ;;
stop)
    echo -n "Shutting down mcollective: "

    if [ -s ${pidfile} ]; then
        kill `cat ${pidfile}` >/dev/null 2>&1
    fi
    rm -f ${pidfile}

    log_success_msg
    rm -f $lock
    ;;
restart)
    $0 stop
    sleep 2
    $0 start
    ;;
condrestart)
    if [ -f $lock ]; then
        $0 stop
        # avoid race
        sleep 2
        $0 start
    fi
    ;;
status)
    if [ -f ${lock} ]; then
        if [ -s ${pidfile} ]; then
            if [ -e /proc/`cat ${pidfile}` ]; then
                echo "mcollectived (`cat ${pidfile}`) is running"
                exit 0
            else
                echo "mcollectived (`cat ${pidfile}`) is NOT running"
                exit 1
            fi
        fi
    else
        echo "mcollectived: service not started"
        exit 1
    fi
    ;;
force-reload)
    echo "not implemented"
    ;;
*)
    echo "Usage: mcollectived {start|stop|restart|condrestart|status}"
    exit 1
    ;;

esac exit 0