diff --git a/release/docker/duniter.sh b/release/docker/duniter.sh index d224e45249af677af166c7c3a7b03061ad7ff9e1..7a8aab3eac6ffd0391baa3a8f70d19c9d22ea8f1 100755 --- a/release/docker/duniter.sh +++ b/release/docker/duniter.sh @@ -1,7 +1,20 @@ #!/bin/sh + +# Terminate gracefully on SIGTERM by propagating it to the 'node' process +sigterm () { + echo "Received SIGTERM. Terminating..." >&2 + pkill node + wait %1 +} +trap 'sigterm' TERM + +# Main cd /duniter if [ "$1" != --home ]; then set -- --home /var/lib/duniter "$@" fi -exec bin/duniter "$@" +# Launch in background and wait +# This way we can catch SIGTERM +bin/duniter "$@" & +wait %1