From 4febf8a2e9aca6aed328fe44bcae7b9e28688c23 Mon Sep 17 00:00:00 2001
From: Robert Martin-Legene <robert@nic.ar>
Date: Wed, 9 Oct 2019 03:35:12 -0300
Subject: [PATCH] Let's see if this won't help us dying nicely inside a docker

---
 bin/singlestart.sh | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/bin/singlestart.sh b/bin/singlestart.sh
index abce630..aa7da1c 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
-- 
GitLab