summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-server
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2016-01-15 21:48:22 +0300
committerMichael Klishin <michael@clojurewerkz.org>2016-01-15 21:48:22 +0300
commit6f1e94f9d4012c6c39552ca561ce0077a7b054e4 (patch)
tree1ee1c35ead4b3ab677e93a76cfdf70092ba7cc26 /scripts/rabbitmq-server
parent2398554cfb5a1cd942ad91dfa8a4e2ac88f38647 (diff)
parent115babd8683614cf89da6cf8cbbba351fc6e8e9a (diff)
downloadrabbitmq-server-git-6f1e94f9d4012c6c39552ca561ce0077a7b054e4.tar.gz
Merge branch 'stable'
Diffstat (limited to 'scripts/rabbitmq-server')
-rwxr-xr-xscripts/rabbitmq-server17
1 files changed, 15 insertions, 2 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index 303383eb1b..6397d1cdbd 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -38,8 +38,21 @@ case "$(uname -s)" in
if [ $detached ]; then
echo "Warning: PID file not written; -detached was passed." 1>&2
else
- mkdir -p $(dirname ${RABBITMQ_PID_FILE});
- echo $$ > ${RABBITMQ_PID_FILE}
+ RABBITMQ_PID_DIR="$(dirname ${RABBITMQ_PID_FILE})"
+ EX_CANTCREAT=73 # Standard exit code from sysexits(2)
+ if ! mkdir -p "$RABBITMQ_PID_DIR"; then
+ # Better diagnostics - 'mkdir -p' reports only the first directory in chain that
+ # it fails to create
+ echo "Failed to create directory: $RABBITMQ_PID_DIR"
+ exit $EX_CANTCREAT
+ fi
+ if ! echo $$ > ${RABBITMQ_PID_FILE}; then
+ # Bettern diagnostics - otherwise the only report in logs is about failed 'echo'
+ # command, but without any other details: neither what script has failed nor what
+ # file output was redirected to.
+ echo "Failed to write pid file: ${RABBITMQ_PID_FILE}"
+ exit $EX_CANTCREAT
+ fi
fi
esac