diff options
| author | Alexey Lebedeff <alebedev@mirantis.com> | 2015-12-31 12:30:04 +0300 |
|---|---|---|
| committer | Alexey Lebedeff <alebedev@mirantis.com> | 2015-12-31 15:38:06 +0300 |
| commit | fe243c2e71771b208574c612b9a06b52ca1a509c (patch) | |
| tree | dc71e78ddbc6df0747822068ce2aa97aebe57e25 | |
| parent | 4f1483b3d9bab8f996128e676f40b168eb0fee65 (diff) | |
| download | rabbitmq-server-git-fe243c2e71771b208574c612b9a06b52ca1a509c.tar.gz | |
Improve diagnostics in 'rabbitmq-server' script
While errors are detected with '-e' shell option in this script,
diagnostics messages leave a lot to be desired.
E.g. when trying to write pid file to full partition, the only message
in log is:
sh: echo: I/O error
Which is definitely insufficient
| -rwxr-xr-x | scripts/rabbitmq-server | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 69c2b7ff6c..548a085434 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 |
