#!/bin/sh # # mcollective Application Server for STOMP based agents # # # 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 mcollective. ### END INIT INFO # check permissions uid=`id -u` [ $uid -gt 0 ] && { echo "You need to be root to run file" ; exit 4 ; } # PID directory pidfile="/var/run/mcollective.pid" name="mcollective" mcollectived=/usr/sbin/mcollectived daemonopts="--config=/etc/mcollective/server.cfg" # Source function library. . /lib/lsb/init-functions # Check that binary exists if ! [ -f $mcollectived ] then echo "mcollectived binary not found" exit 5 fi # See how we were called. case "$1" in start) echo "Starting daemon: " $name # start the program if [ -f $pidfile ]; then if [ -f $(cat /proc/$(cat $pidfile)/exe > /dev/null) ] ; then echo MCollective appears to be running exit 1 else /sbin/start-stop-daemon --start -b --quiet --oknodo -m --pidfile $pidfile --exec $mcollectived -- $daemonopts [ $? = 0 ] && { exit 0 ; } || { exit 1 ; } fi else /sbin/start-stop-daemon --start -b --quiet --oknodo -m --pidfile $pidfile --exec $mcollectived -- $daemonopts fi log_success_msg "mcollective started" ;; stop) echo "Stopping daemon: " $name /sbin/start-stop-daemon --stop -q --pidfile $pidfile if [ -f $pidfile ]; then rm -f $pidfile fi [ $? = 0 ] && { exit 0 ; } || { exit 1 ; } log_success_msg "mcollective stopped" ;; restart) echo "Restarting daemon: " $name $0 stop sleep 2 $0 start [ $? = 0 ] && { echo "mcollective restarted" ; exit 0 ; } ;; status) status_of_proc -p ${pidfile} ${mcollectived} ${name} && exit 0 || exit $? ;; *) echo "Usage: mcollectived {start|stop|restart|condrestart|status}" exit 2 ;; esac