#!/bin/bash # # $SAI_INSTANCE_IDX - which instance of sai, 0+ # $1 - background fixture name, unique within test space, like "multipostlocalsrv" # $2 - executable # $3+ - args echo "$0 $1 $2 $3 $4" J=`basename $2`.$1.$SAI_INSTANCE_IDX PI=`cat /tmp/sai-ctest-$J` # # We expect our background process to initially still be around # kill -0 $PI GONESKI=$? echo "Background task $PI: $J" if [ $GONESKI -eq 1 ] ; then echo "Background Process $PI unexpectedly dead already, their log" cat /tmp/ctest-background-$J exit 1 fi echo "Trying SIGTERM..." kill $PI # # 100ms intervals, 100 = 10s # need to allow time for valgrind case # BUDGET=100 while [ $BUDGET -ne 0 ] ; do sleep 0.1 kill -0 $PI 2>&1 if [ $? -eq 1 ] ; then echo "Went down OK" exit 0 fi BUDGET=$(( $BUDGET - 1 )) done echo "Trying SIGKILL..." kill -9 $PI # # 100ms intervals, 100 = 10s # need to allow time for valgrind case # BUDGET=20 while [ $BUDGET -ne 0 ] ; do sleep 0.1 kill -0 $PI 2>&1 if [ $? -eq 1 ] ; then echo "Went down OK after SIGKILL" exit 0 fi BUDGET=$(( $BUDGET - 1 )) done echo "Couldn't kill it" exit 1