X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=mcollective.init;h=37e96abba75eb5c9b4b0b877a71d4a13731851cd;hb=7c9314f502cde8daad23b61d10b24a542e04154a;hp=6fb229b0c1cc0397018eff095951ea090380706e;hpb=327162e6e319ff38447992668e0753363b870b6e;p=packages%2Fprecise%2Fmcollective.git diff --git a/mcollective.init b/mcollective.init old mode 100644 new mode 100755 index 6fb229b..37e96ab --- a/mcollective.init +++ b/mcollective.init @@ -2,6 +2,7 @@ # # 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 @@ -14,22 +15,23 @@ # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time -# Description: Enable service provided by mcollective. +# Description: Enable service provided by daemon. ### END INIT INFO -# check permissions +mcollectived="/usr/sbin/mcollectived" -uid=`id -u` -[ $uid -gt 0 ] && { echo "You need to be root to run file" ; exit 4 ; } +# 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/mcollective.pid" - -name="mcollective" -mcollectived=/usr/sbin/mcollectived -daemonopts="--config=/etc/mcollective/server.cfg" - +pidfile="/var/run/mcollectived.pid" # Source function library. . /lib/lsb/init-functions @@ -38,48 +40,83 @@ daemonopts="--config=/etc/mcollective/server.cfg" if ! [ -f $mcollectived ] then echo "mcollectived binary not found" - exit 5 + exit 0 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" + 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 "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" + 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) - echo "Restarting daemon: " $name $0 stop sleep 2 $0 start - [ $? = 0 ] && { echo "mcollective restarted" ; exit 0 ; } + ;; + condrestart) + if [ -f $lock ]; then + $0 stop + # avoid race + sleep 2 + $0 start + fi ;; status) - status_of_proc -p ${pidfile} ${mcollectived} ${name} && exit 0 || exit $? + 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 2 + exit 1 ;; esac +exit 0