diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-01-24 13:42:59 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-01-24 13:42:59 +0000 |
| commit | b5f4ad4de0691a29d4ae22a840d4b6f830c1947f (patch) | |
| tree | 602f9c26f9607656d957e6574ad8ea4509c6c1b5 /packaging/common | |
| parent | 6574ee12f9e23f3e82d396874638f366e4e6ae98 (diff) | |
| download | rabbitmq-server-git-b5f4ad4de0691a29d4ae22a840d4b6f830c1947f.tar.gz | |
First pass at a multi-free init script.
Diffstat (limited to 'packaging/common')
| -rw-r--r-- | packaging/common/rabbitmq-server.init | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/packaging/common/rabbitmq-server.init b/packaging/common/rabbitmq-server.init index 39d239835c..54fd39b790 100644 --- a/packaging/common/rabbitmq-server.init +++ b/packaging/common/rabbitmq-server.init @@ -17,53 +17,65 @@ ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin -DAEMON=/usr/sbin/rabbitmq-multi NAME=rabbitmq-server +DAEMON=/usr/sbin/${NAME} +CONTROL=/usr/sbin/rabbitmqctl DESC=rabbitmq-server USER=rabbitmq -NODE_COUNT=1 +TIMEOUT=10 ROTATE_SUFFIX= INIT_LOG_DIR=/var/log/rabbitmq -DEFAULTS_FILE= # This is filled in when building packages LOCK_FILE= # This is filled in when building packages test -x $DAEMON || exit 0 -# Include rabbitmq defaults if available -if [ -f "$DEFAULTS_FILE" ] ; then - . $DEFAULTS_FILE -fi - RETVAL=0 set -e start_rabbitmq () { - set +e - $DAEMON start_all ${NODE_COUNT} > ${INIT_LOG_DIR}/startup_log 2> ${INIT_LOG_DIR}/startup_err - case "$?" in - 0) - echo SUCCESS - [ -n "$LOCK_FILE" ] && touch $LOCK_FILE + status_rabbitmq quiet + if [ $RETVAL != 0 ] ; then RETVAL=0 - ;; - 1) - echo TIMEOUT - check ${INIT_LOG_DIR}/startup_\{log,err\} - RETVAL=1 - ;; - *) - echo FAILED - check ${INIT_LOG_DIR}/startup_log, _err + set +e + nohup $DAEMON > ${INIT_LOG_DIR}/startup_log \ + 2> ${INIT_LOG_DIR}/startup_err & + wait_for_rabbitmq + case "$?" in + 0) + echo SUCCESS + [ -n "$LOCK_FILE" ] && touch $LOCK_FILE + RETVAL=0 + ;; + *) + echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} + RETVAL=1 + ;; + esac + set -e + else + echo RabbitMQ is currently running RETVAL=1 - ;; - esac - set -e + fi +} + +wait_for_rabbitmq() { + WAITED=0 + while [ $WAITED != $TIMEOUT ]; do + if status_rabbitmq quiet ; then + return 0 + fi + sleep 1 + WAITED=`expr $WAITED + 1` + done + return 1 } stop_rabbitmq () { set +e status_rabbitmq quiet if [ $RETVAL = 0 ] ; then - $DAEMON stop_all > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err + $CONTROL stop > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err RETVAL=$? if [ $RETVAL = 0 ] ; then [ -n "$LOCK_FILE" ] && rm -rf $LOCK_FILE @@ -71,7 +83,7 @@ stop_rabbitmq () { echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err fi else - echo No nodes running + echo RabbitMQ is not running RETVAL=0 fi set -e @@ -80,9 +92,9 @@ stop_rabbitmq () { status_rabbitmq() { set +e if [ "$1" != "quiet" ] ; then - $DAEMON status 2>&1 + $CONTROL status 2>&1 else - $DAEMON status > /dev/null 2>&1 + $CONTROL status > /dev/null 2>&1 fi if [ $? != 0 ] ; then RETVAL=1 |
