From 94384e4d3a4143578d5140c386188fd389754ebf Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Tue, 11 Jul 2017 07:29:37 +0200 Subject: make test: kill all remaining subprocesses on exit This change introduces a wrapper script which kills all processes in the same process group as itself (with the exception of the script). Using this script to run the unit tests should prevent stale processes left behind in some cases (e.g. when test framework crashes). Change-Id: If3b9201c06b87fa6be095721436893207d09b5e4 Signed-off-by: Klement Sekera --- test/scripts/run_with_cleanup.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 test/scripts/run_with_cleanup.sh (limited to 'test/scripts') diff --git a/test/scripts/run_with_cleanup.sh b/test/scripts/run_with_cleanup.sh new file mode 100755 index 00000000000..dcaa58b4498 --- /dev/null +++ b/test/scripts/run_with_cleanup.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +rv=0 + +atexit() { + group_id=`ps -p $$ -o pgid=` + my_id=$$ + ids=`pgrep -g $group_id -d ' ' | sed "s/\b$my_id\b//g"` + echo "Killing possible remaining process IDs: $ids" + for id in $ids + do + if ps -p $id > /dev/null + then + kill -9 $id + fi + done + exit $rv +} + +trap "atexit" SIGINT SIGTERM + +$* +rv=$? +atexit +exit $rv -- cgit 1.2.3-korg