summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-04-22 19:17:28 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-04-22 19:17:28 +0200
commit1edba4a24800c2c58a865079aea118ab980df3bb (patch)
tree3e799c7ac59ba2a43f6345eb15a695fccb60c731
parent4c9c589959901dd4ec24934b2f0bf5665d4ab083 (diff)
downloadrabbitmq-server-git-1edba4a24800c2c58a865079aea118ab980df3bb.tar.gz
rabbitmq-env: Ignore user's RABBITMQ_PID_FILE if set by init script
The user shouldn't override the init script's RABBITMQ_PID_FILE value, otherwise the init script erroneously reports failures to start or stop the service. Now, rabbitmq-env logs a warning if RABBITMQ_PID_FILE is already defined in the environment (ie. by the init script) and in rabbitmq-env.conf. Fixes #127.
-rwxr-xr-xscripts/rabbitmq-env15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index d0f170ed9e..ab9483f912 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -54,9 +54,24 @@ if [ -f /etc/rabbitmq/rabbitmq.conf ] && \
echo "location has moved to ${CONF_ENV_FILE}"
fi
+# We save the current value of $RABBITMQ_PID_FILE in case it was set by
+# an init script. If $CONF_ENV_FILE overrides it again, we must ignore
+# it and warn the user.
+saved_RABBITMQ_PID_FILE=$RABBITMQ_PID_FILE
+
## Get configuration variables from the configure environment file
[ -f ${CONF_ENV_FILE} ] && . ${CONF_ENV_FILE} || true
+if [ "$saved_RABBITMQ_PID_FILE" -a \
+ "$saved_RABBITMQ_PID_FILE" != "$RABBITMQ_PID_FILE" ]; then
+ echo "WARNING: RABBITMQ_PID_FILE was already set by the init script to:" 1>&2
+ echo " $saved_RABBITMQ_PID_FILE" 1>&2
+ echo " The value set in rabbitmq-env.conf is ignored because it" 1>&2
+ echo " would break the init script." 1>&2
+
+ RABBITMQ_PID_FILE="$saved_RABBITMQ_PID_FILE"
+fi
+
[ "x" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_USE_LONGNAME=${USE_LONGNAME}
if [ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] ; then
RABBITMQ_NAME_TYPE=-name