fine-grain kill of qemus - new step list_all_qemus
[tests.git] / system / qemu_kill.sh
1 #!/bin/sh
2 COMMAND=$(basename $0)
3
4 hostname=$1; shift
5
6 # -l option 
7 if [ "$hostname" = "-l" ] ; then
8     echo $COMMAND - listing qemu processes on $(hostname)
9     pids="$(pgrep -x qemu) $(pgrep -x start-qemu-node)"
10     [ -n "$(echo $pids)" ] && ps $pids
11     exit 0
12 fi
13
14 # locate only the actual qemu 
15 qemu_pids="$(pgrep -x start-qemu-node) $(pgrep -x qemu)"
16
17 if [ -z "$(echo $qemu_pids)" ] ; then
18     echo $COMMAND - no qemu found on $(hostname)
19     exit 0
20 fi
21
22 pids="$(ps $qemu_pids | grep $hostname | awk '{print $1;}')"
23
24 if [ -z "$pids" ] ; then
25     echo $COMMAND: no qemu instance for $hostname found on $(hostname)
26     exit 0
27 fi
28
29 echo Killing $pids
30 kill $pids
31 (sleep 1; 
32  if ps $pids &> /dev/null ; then
33      echo still alive - killing -9 $pids
34      kill -9 $pids
35  fi ) &
36 echo Done
37 exit 0