#!/bin/bash
# ---------------------------------------------------------------------------- #
## \file rkill.sh
## \author Sebastien Beaugrand
## \sa http://beaugrand.chez.com/
## \copyright CeCILL 2.1 Free Software license
# ---------------------------------------------------------------------------- #
if [ -z "$1" ]; then
exit 0
fi
# ---------------------------------------------------------------------------- #
# treekill
# ---------------------------------------------------------------------------- #
treekill()
{
childs=`ps -ef | awk '$3 == '$1' { print $2 }'`
name=`ps -p $1 | tail -n 1 | awk '{ print $NF }'`
if kill -9 $1 2>/dev/null; then
echo "$level$name($1) killed"
else
echo "$level$name($1) not found"
fi
levelprec=$level
level="$level "
for c in $childs; do
treekill $c
done
level=$levelprec
}
# ---------------------------------------------------------------------------- #
# main
# ---------------------------------------------------------------------------- #
for i in $*; do
level=""
treekill $i
done