Index: user/pho/stress2/tools/killall.sh =================================================================== --- user/pho/stress2/tools/killall.sh (revision 319208) +++ user/pho/stress2/tools/killall.sh (revision 319209) @@ -1,40 +1,53 @@ #!/bin/sh # # Copyright (c) 2013 Peter Holm # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # # Kill all running test programs from stress2/testcases -for i in `find ../testcases -type f -perm -1`; do - list=`echo $list $(basename $i)` -done +list="`find ../testcases -type f -perm -1 | xargs basename`" +[ -z "$list" ] && exit 1 -for i in `jot 20`; do - killall -q -9 $list 2>/dev/null || break - sleep $i +i=0 +while pkill -9 $list; do + [ $((i += 1)) -lt 3 ] && continue + if [ -z "$(ps `pgrep $list` | sed 1d)" ]; then # + for j in "`pgrep $list`"; do + ps auxwwl | awk "\$2 == $j" + done + echo "$0 FAIL"; exit 2 + fi + if [ $i -eq 30 ]; then + pgrep $list | xargs ps -lp + echo "$0 FAIL @ $i" + exit 3 + fi + sleep 5 done +[ $i -gt 2 ] && echo "Note: $0 exit @ $i" +exit 0