diff options
| author | Jean-Sebastien Pedron <jean-sebastien@rabbitmq.com> | 2015-01-29 13:27:40 +0100 |
|---|---|---|
| committer | Jean-Sebastien Pedron <jean-sebastien@rabbitmq.com> | 2015-01-29 13:27:40 +0100 |
| commit | ec851de0e9a9d70620aacef5ad59592fbea75c81 (patch) | |
| tree | 444d86b9a142f89c9fb912c12acab8555be13666 /packaging | |
| parent | 05d9b5dbda524e492dfcef81ede5006c5d107da6 (diff) | |
| download | rabbitmq-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-wrapper | 6 |
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 |
