1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#!/bin/ksh
killAll(){
liste=`echo ${*##*$1}`
# on descend tant qu'il y a des fils
if [ ${#liste} -gt 0 ]
then
# recherche des fils
fils1=`echo $liste | cut -f 1 -d " "`
PF=`pgrep -P $fils1`
killAll $fils1 $PF
# on kill le premier fils dans la liste et on remonte
kill -9 $fils1
autreFils=`echo ${*##*$fils1}`
killAll $1 $autreFils
fi
}
#nom du processus a tuer !!
PROCESS=konsole
# Process pere
NP=`ps -Af | grep $PROCESS | grep -v grep | awk '{print $2}'`
# Recherche de ses fils niveau 1
NPF=`pgrep -P $NP`
#Supression des fils de tous niveaux
killAll $NP $NPF
# on tue le premier pere
#kill -9 $NP |