Bonjour,
J'ai commencé à écrire un script en korn shell qui tue tous les processus fils (sur tous les les niveaux) à partir d'un processus donné (cad tous les processus que le père à crée). Le meileur moyen (je pense) est de le faire en récursif mais j'ai un peu de mal. Qq1 peut il m'éclaircir ?
MErci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager