diff --git a/system/init.d/kazoo-rabbitmq.redhat b/system/init.d/kazoo-rabbitmq.redhat index c3d0dfc..cd7a28e 100755 --- a/system/init.d/kazoo-rabbitmq.redhat +++ b/system/init.d/kazoo-rabbitmq.redhat @@ -5,175 +5,76 @@ # chkconfig: - 80 05 # description: Enable AMQP service provided by RabbitMQ # -# Provides: rabbitmq-server +# Provides: rabbitmq-server # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Description: RabbitMQ broker # Short-Description: Enable AMQP service provided by RabbitMQ broker RETVAL=0 -PATH=/sbin:/usr/sbin:/bin:/usr/bin -NAME=rabbitmq-server -CONTROL=/usr/sbin/kazoo-rabbitmq -DESC=rabbitmq-server -USER=rabbitmq -ROTATE_SUFFIX= -INIT_LOG_DIR=/var/log/rabbitmq -PID_FILE=/var/run/rabbitmq/kazoo-pid -START_PROG="daemon" -LOCK_FILE=/var/lock/subsys/kazoo-$NAME +PID_FILE=${PID_FILE:-/var/run/rabbitmq/kazoo-rabbitmq.pid} +LOCK_FILE=${LOCK_FILE:-/var/lock/subsys/kazoo-rabbitmq} . /etc/init.d/functions -test -x $CONTROL || exit 0 - -set -e - -[ -f /etc/default/${NAME} ] && . /etc/default/${NAME} - -[ -f /etc/sysconfig/${NAME} ] && . /etc/sysconfig/${NAME} - -ensure_pid_dir () { - PID_DIR=`dirname ${PID_FILE}` - if [ ! -d ${PID_DIR} ] ; then - mkdir -p ${PID_DIR} - chown -R ${USER}:${USER} ${PID_DIR} - chmod 755 ${PID_DIR} - fi -} - -remove_pid () { - rm -f ${PID_FILE} - rmdir `dirname ${PID_FILE}` || : -} - -start_rabbitmq () { - status_rabbitmq quiet - if [ $RETVAL = 0 ] ; then - echo RabbitMQ is currently running - else - RETVAL=0 - # RABBIT_NOFILES_LIMIT from /etc/sysconfig/rabbitmq-server is not handled - # automatically - if [ "$RABBITMQ_NOFILES_LIMIT" ]; then - ulimit -n $RABBITMQ_NOFILES_LIMIT - fi - - ensure_pid_dir - set +e - RABBITMQ_PID_FILE=$PID_FILE $START_PROG $CONTROL start \ - > "${INIT_LOG_DIR}/startup_log" \ - 2> "${INIT_LOG_DIR}/startup_err" \ - 0<&- & - $CONTROL wait $PID_FILE >/dev/null 2>&1 - RETVAL=$? - set -e - case "$RETVAL" in - 0) - echo SUCCESS - if [ -n "$LOCK_FILE" ] ; then - touch $LOCK_FILE - fi - ;; - *) - remove_pid - echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} - RETVAL=1 - ;; - esac - fi -} - -stop_rabbitmq () { - status_rabbitmq quiet - if [ $RETVAL = 0 ] ; then - set +e - $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err - RETVAL=$? - set -e - if [ $RETVAL = 0 ] ; then - remove_pid - if [ -n "$LOCK_FILE" ] ; then - rm -f $LOCK_FILE - fi - else - echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err - fi - else - echo RabbitMQ is not running - RETVAL=0 - fi -} - -status_rabbitmq() { - set +e - if [ "$1" != "quiet" ] ; then - $CONTROL status 2>&1 +start() { + echo -n $"Starting RabbitMQ: " + /usr/sbin/kazoo-rabbitmq prepare >/dev/null 2>&1 + daemon --pidfile ${PID_FILE} "/usr/sbin/kazoo-rabbitmq start >/dev/null 2>&1" + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + touch ${LOCK_FILE} + success $"OK" + echo else - $CONTROL status > /dev/null 2>&1 + failure $"RabbitMQ is already running or failed to start!" + echo fi - if [ $? != 0 ] ; then - RETVAL=3 - fi - set -e } -rotate_logs_rabbitmq() { - set +e - $CONTROL rotate_logs ${ROTATE_SUFFIX} - if [ $? != 0 ] ; then - RETVAL=1 +stop() { + echo -n $"Stopping RabbitMQ: " + /usr/sbin/kazoo-rabbitmq stop >/dev/null 2>&1 + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + rm -f ${LOCK_FILE} ${pidfile} + success $"OK" + echo + else + failure $"RabbitMQ is still running!" + echo fi - set -e } -restart_running_rabbitmq () { - status_rabbitmq quiet - if [ $RETVAL = 0 ] ; then - restart_rabbitmq - else - echo RabbitMQ is not runnning - RETVAL=0 - fi +status() { + /usr/sbin/kazoo-rabbitmq status + RETVAL=$? } -restart_rabbitmq() { - stop_rabbitmq - start_rabbitmq +restart() { + stop + start } case "$1" in start) - echo -n "Starting $DESC: " - start_rabbitmq - echo "$NAME." + start ;; stop) - echo -n "Stopping $DESC: " - stop_rabbitmq - echo "$NAME." + stop ;; status) - status_rabbitmq - ;; - rotate-logs) - echo -n "Rotating log files for $DESC: " - rotate_logs_rabbitmq + status ;; - force-reload|reload|restart) - echo -n "Restarting $DESC: " - restart_rabbitmq - echo "$NAME." + restart|reload) + restart ;; - try-restart) - echo -n "Restarting $DESC: " - restart_running_rabbitmq - echo "$NAME." + condrestart) + [ ! -e ${LOCK_FILE} ] && restart ;; *) - echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 + echo $"Usage: $0 (start|stop|restart|status)" RETVAL=1 - ;; esac -exit $RETVAL +exit ${RETVAL} \ No newline at end of file diff --git a/system/sbin/kazoo-rabbitmq b/system/sbin/kazoo-rabbitmq index 7158525..5a42f66 100755 --- a/system/sbin/kazoo-rabbitmq +++ b/system/sbin/kazoo-rabbitmq @@ -24,6 +24,7 @@ export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins export RABBITMQ_NODENAME=kazoo-rabbitmq prepare() { + rm -rf /var/lib/rabbitmq/mnesia/kazoo-rabbit* mkdir -p ${HOME} chown -R ${USER} ${HOME} mkdir -p /var/log/rabbitmq @@ -48,7 +49,7 @@ start() { if [ "$(whoami)" == "${USER}" ]; then exec "$@" else - exec sudo -u ${USER} "$@" + exec sudo -E -u ${USER} "$@" fi RETVAL=$? @@ -64,7 +65,7 @@ case "$1" in ;; start) shift - start "-detached $@" + start "-detached" $@ ;; foreground) shift