shell sh....AWK grace au melange d'idees [MERCI RESOLU] - Shell/Batch - Programmation
Marsh Posté le 04-08-2002 à 14:02:39
kuroineko a écrit a écrit : Bonjour j'ai un souci, je voudrai pouvoir ecrire un script Shell sh qui tuerai des processus lances... et ne tuer que les 5 6 & 7 par exemple selon la commande |
Il y a plein de façons (à modifier suivant la tronche de la sortie de ta commande ps)
Code :
|
Ou encore :
Code :
|
Bref, avec un peu d'imagination on trouve 2 milliards de façons.
oops, je réponds pas du tout à la question
Marsh Posté le 04-08-2002 à 15:27:37
kuroineko a écrit a écrit : Bonjour j'ai un souci, je voudrai pouvoir ecrire un script Shell sh qui tuerai des processus lances... mais voila comment faire ca proprement et surtout sans couper un process innocent qui n'a rien a voir... |
Bon, maintenant que j'ai compris la question je peux répondre : il suffit de faire un parcours de l'arbre méthode gros porc
Bon, il te faudras sans doute modifier tout ça pour l'adapter au ps et au awk de ton système mais c'est l'idée (et ça fonctionne en plus !)
Pour la selection du bon process c'est pénible parce que un grep bête ne fonctionne pas à tous les coups, avec un peu de malchance le grep courant se retrouve dedans du coup il faut faire une sélection un peu stricte
Le code suivant t'affiche la liste des pids des processus étant commande ou descendant de commande (si tu l'appelle ./plop.sh commande par exemple).
Il te suffit de faire un
Code :
|
pour les buter tous.
Code :
|
edit: j'avais laissé un truc qui sert à rien
Marsh Posté le 04-08-2002 à 19:06:25
Merci je crois que j'ai compris et devrai maintenant pouvoir utiliser ton idee.
Marsh Posté le 04-08-2002 à 21:37:47
kuroineko a écrit a écrit : Merci je crois que j'ai compris et devrai maintenant pouvoir utiliser ton idee. |
listproc=`ps -ef | grep aol | awk '{print $2}'`
kill `echo $listproc | awk '{print $1 $2 $3 $4 $5 $6 $7 $8 $9 \
}'`
.... # script initial
et ca ca marcherai ??
Marsh Posté le 04-08-2002 à 22:25:13
par exemple ca : ?
.....#debut de script
for TOdo_kill in `ps -axu | grep aol | awk '{print $2 }'`
do
kill -9 $TOdo_kill
done
# script de demarrage
pengaol -Connect $AOLUSERNAME & >> \
/var/log/aol.log 2>&1
------------------------------------------
comme aol coupe grossomodo toutes les 23~24heures, il me suffirait alors de mettre le script dans le crontab pour le tuer/redemarrer toutes les 12 heures ?:
0 8,20 * * * /home/operator/aol.sh
------------------------------------------
ca devrait fonctionner non ?
ensuite il me suffirait de configurer sshd, et trouver un soft qui gere le dns/ip-dynamique pour pouvoir me connecter de l'exterieur avec le compte userstd...userstd est un user du groupe std qui a tres peu de droits sur la machine.
ou c'est une mauvaise idee ?
Marsh Posté le 04-08-2002 à 00:57:02
Bonjour
j'ai un souci, je voudrai pouvoir ecrire un script Shell sh qui tuerai des processus lances...
tels que par exemple
PID PPID
1
2 1
3 2
4 3
5
6 5
7 6
8
9
10 9
et ne tuer que les 5 6 & 7 par exemple selon la commande
je penssais recuperer ca par
ps -ef | grep commande
PID PPID
5 commande
6 5 souscommande
7 6 truc
11 ps -ef | grep command
TO_kill=`ps -ef |grep $1`
kill $TO_kill
mais voila comment faire ca proprement et surtout sans couper un process innocent qui n'a rien a voir...
Message édité par kuroineko le 04-08-2002 à 23:27:15
---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault fpussault@caramail.com