diff --git a/bin/singlestart.sh b/bin/singlestart.sh index abce630101d08d355ad08ad9a6848d0160fd0abd..aa7da1c932b63df4d67c36c56e7d40034d5b0782 100755 --- a/bin/singlestart.sh +++ b/bin/singlestart.sh @@ -13,6 +13,7 @@ trap "exit 1" ERR trap "reaper" SIGINT SIGCHLD unset LOGDIR LOGPIPE PIDIDX declare -A PIDIDX +trap "killallprocs" SIGTERM function reaper() { @@ -40,6 +41,15 @@ function reaper() max=30 } +function killallprocs() +{ + if [ ${#PIDIDX[*]} -gt 0 ] + then + echo "*** Killing all remaining processes: ${PIDIDX[*]} (${!PIDIDX[*]})." + kill -KILL ${!PIDIDX[*]} 2>/dev/null || true + fi +} + # You can start as: # BFAHOME=/home/bfa/bfa singlestart.sh # singlestart.sh /home/bfa/bfa @@ -111,8 +121,4 @@ do sleep 1 max=$(( $max - 1 )) done -if [ ${#PIDIDX[*]} -gt 0 ] -then - echo "*** Killing all remaining processes: ${PIDIDX[*]} (${!PIDIDX[*]})." - kill -KILL ${!PIDIDX[*]} 2>/dev/null || true -fi +killallprocs