summaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
authorJean-Sebastien Pedron <jean-sebastien@rabbitmq.com>2015-01-29 13:27:40 +0100
committerJean-Sebastien Pedron <jean-sebastien@rabbitmq.com>2015-01-29 13:27:40 +0100
commitec851de0e9a9d70620aacef5ad59592fbea75c81 (patch)
tree444d86b9a142f89c9fb912c12acab8555be13666 /packaging
parent05d9b5dbda524e492dfcef81ede5006c5d107da6 (diff)
downloadrabbitmq-server-git-ec851de0e9a9d70620aacef5ad59592fbea75c81.tar.gz
rabbitmq-script-wrapper: Use "exec" to execute the subsequent script
Without this, a new process is spawned to execute the script. This new process won't receive the signals delivered to the process initially started. A user reported this problem with RabbitMQ in Docker: when the service must be stopped, the SIGTERM doesn't make it to the server which continues to run.
Diffstat (limited to 'packaging')
-rw-r--r--packaging/common/rabbitmq-script-wrapper6
1 files changed, 3 insertions, 3 deletions
diff --git a/packaging/common/rabbitmq-script-wrapper b/packaging/common/rabbitmq-script-wrapper
index 1949dacae8..c9508847f9 100644
--- a/packaging/common/rabbitmq-script-wrapper
+++ b/packaging/common/rabbitmq-script-wrapper
@@ -30,14 +30,14 @@ cd /var/lib/rabbitmq
SCRIPT=`basename $0`
if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then
- /usr/lib/rabbitmq/bin/rabbitmq-server "$@" @STDOUT_STDERR_REDIRECTION@
+ exec /usr/lib/rabbitmq/bin/rabbitmq-server "$@" @STDOUT_STDERR_REDIRECTION@
elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then
if [ -f $PWD/.erlang.cookie ] ; then
export HOME=.
fi
- /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
+ exec /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
elif [ `id -u` = 0 ] ; then
- @SU_RABBITMQ_SH_C@ "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
+ exec @SU_RABBITMQ_SH_C@ "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
else
/usr/lib/rabbitmq/bin/${SCRIPT}
echo