[Shell] Petit script de suppression de processus

Petit script de suppression de processus [Shell] - Shell/Batch - Programmation

Marsh Posté le 22-12-2005 à 16:45:44    

Bonjour,
 
je cherche à me faire un petit script pour me faciliter la vie.
Un script qui va chercher les processus de apache d'un utilisateur donné et qui les kill tous.
 
Le truc, c'est que le shell justement c'est pas mon truc...
 
J'en arrive la :

Code :
  1. # blabla
  2. for process in `ps -eo pid,cmd |grep httpd| grep $1`
  3. do
  4.    kill -9 $process
  5. done
  6. # blabla


 
Bon après je pourrai faire mumuse pour mettre un compteur, toussa... mais la déja ca ne marche pas.
 
La commande ps telle qu'elle est écrite me renvoie la commande en détail, avec pour chaque élément une case de mon "tableau" : /opt/apache/httpd_docs/bin/httpd_docs
-DSSL
-f
/hom***nf
 
Forcément, ca ne m'interesse pas d'avoir tout ca... mais je n'arrive pas a m'en débarrasser, et je suis obligé de garder la commande pour faire mon tri de processus...
Si je ne récupére que les PID, je n'arrive pas a faire tri...
 
Argh le shell :o
 
Merci

Reply

Marsh Posté le 22-12-2005 à 16:45:44   

Reply

Marsh Posté le 22-12-2005 à 17:13:04    

Regarde cut, awk ou read selon tes besoins.

Reply

Marsh Posté le 22-12-2005 à 17:21:07    

En fait ces méthodes m'arrangeraient bien si je pouvais récupérer toute la ligne d'un coup... (une ligne correspondant à un processus)
Mais la mon problème c'est bien que le résultat de ma commande est découpé en petits morceaux, et donc assez lourd a utiliser...

Reply

Marsh Posté le 22-12-2005 à 17:50:25    

Ton résultat est découpé parce que ta boucle for lit les données reçues une à une, séparées par un espace, une tabulation ou un saut de ligne.
 
Si tu exécutes ta ligne de commande en dehors de ta boucle for, tu constateras que tu reçois bien le résultat sur une seule ligne.

Reply

Marsh Posté le 22-12-2005 à 18:08:14    

Mais si je l'execute hors de la boucle for, je vais obtenir un gros bloc avec autant de ligne que j'ai de processus a stopper.
Donc traiter ensuite ce bloc (je sais pas encore comment faire mais ca doit se trouver, surtout avec les commandes que tu m'as donné plus haut) pour récupérer la liste des PID et enfin boucler dessus.
 
Ya pas plus simple? (en fait je pensais qu'il y avait un moyen de récupérer juste ce qui m'interessait avec la commande ps mais je n'ai pas trouvé mon bonheur...)

Reply

Marsh Posté le 22-12-2005 à 18:35:41    

Euh non mais je te parlais de l'exécuter en dehors de for juste pour constater que tu recevais le résultat sur une seule ligne (1 ligne par pid).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed