You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

80 lines
1.5 KiB

#!/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() {
rm -rf /var/lib/rabbitmq/mnesia/kazoo-rabbit*
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
if [ -e ${PID_FILE} ]; then
rm -rf ${PID_FILE}
fi
}
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 -E -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}