From 9036430f15c057db0430db6ec7c9072df9e92eb2 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Thu, 18 Apr 2019 02:10:26 +0100 Subject: [PATCH] Better signal handling for multisim.sh (#4149) --- cmd/gaia/contrib/sim/multisim.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/gaia/contrib/sim/multisim.sh b/cmd/gaia/contrib/sim/multisim.sh index fc2e1bd19..8da1feb77 100755 --- a/cmd/gaia/contrib/sim/multisim.sh +++ b/cmd/gaia/contrib/sim/multisim.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + go mod download seeds=(1 2 4 7 9 20 32 123 124 582 1893 2989 3012 4728 37827 981928 87821 891823782 989182 89182391 \ @@ -16,7 +18,17 @@ echo "Using genesis file $genesis" echo "Edit scripts/multisim.sh to add new seeds. Keeping parameters in the file makes failures easy to reproduce." echo "This script will kill all sub-simulations on SIGINT/SIGTERM (i.e. Ctrl-C)." -trap 'kill $(jobs -pr)' SIGINT SIGTERM +cleanup() { + local l_children + l_children=$(ps -o pid= --ppid $$) + echo "Stopping children ["${l_children}"] ..." >&2 + kill -SIGSTOP ${l_children} || true + echo "Terminating children ["${l_children}"] ..." >&2 + kill -TERM ${l_children} || true + exit 0 +} + +trap cleanup SIGINT SIGTERM tmpdir=$(mktemp -d) echo "Using temporary log directory: $tmpdir"