#!/bin/bash -e if [ -f /etc/default/rabbitmq ]; then . /etc/default/rabbitmq fi RETVAL=0 USER=${RABBITMQ_USER-rabbitmq} BIN_FILE=${RABBITMQ_BIN:-/usr/lib/rabbitmq/bin/rabbitmq-server} PID_FILE=${RABBITMQ_PID:-/var/run/rabbitmq/kazoo-rabbitmq.pid} CFG_FILE=${RABBITMQ_ENV:-/etc/kazoo/rabbitmq/rabbitmq-env.conf} while read LINE; do export RABBITMQ_$LINE done < ${CFG_FILE} if [ -f /etc/sysconfig/rabbitmq ]; then . /etc/sysconfig/rabbitmq fi export HOME=${RABBITMQ_HOME-/var/lib/rabbitmq} export RABBITMQ_CONFIG_FILE=/etc/kazoo/rabbitmq/rabbitmq export RABBITMQ_ENABLED_PLUGINS_FILE=/etc/kazoo/rabbitmq/enabled_plugins export RABBITMQ_NODENAME=kazoo-rabbitmq prepare() { mkdir -p ${HOME} chown -R ${USER} ${HOME} mkdir -p /var/log/rabbitmq chown -R ${USER} /var/log/rabbitmq mkdir -p /var/run/rabbitmq chown -R ${USER} /var/run/rabbitmq touch ${PID_FILE} chown ${USER} ${PID_FILE} } start() { cd ${HOME} if /usr/lib/rabbitmq/bin/rabbitmqctl status > /dev/null 2>&1; then echo "RabbitMQ is already running!" RETVAL=1 return fi set -- ${BIN_FILE} "$@" if [ "$(whoami)" == "${USER}" ]; then exec "$@" else exec sudo -u ${USER} "$@" fi RETVAL=$? if [ ${RETVAL} -ne 0 ]; then echo "Failed to start RabbitMQ!" RETVAL=1 fi } case "$1" in prepare) prepare ;; start) shift start "-detached $@" ;; foreground) shift start "$@" ;; *) exec /usr/lib/rabbitmq/bin/rabbitmqctl $@ RETVAL=$? ;; esac exit ${RETVAL}