Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/06/2006, à 00:44

cipher16

detecter un processus fou par la console ou ...

Bonjour ...
je cherche à developper un script qui vérifie si un processus est fou puis qui le redémarre automatiquemment ... pas de problème pour le redémarrer automatiquement en cas de crash, mais pour détecter si il est devenue fou ... faut faire comment?

J'imagine que sa doit être une fonction de kill mais je ne sais pas qu'elle paramètre mettre ...

pourriez-vous m'aider?? (c'est pour automatisé la gestion de mon serveur)

Merci d'avance;)

Hors ligne

#2 Le 23/06/2006, à 08:57

gapz

Re : detecter un processus fou par la console ou ...

Pour savoir s' il est fou déja tu peux essayer de voir combien il "consomme" au niveau du CPU et de la RAM, après tu fixe un quota, puis dépassé ce quota, tu killall puis si sa marche pas kill -9 uid.

Pour la mémoire (tout les processus, on pourra remplacer %mem par %cpu)

ps gaxo %mem

Par exemple tu met le résultat dans une liste, puis avec un while tu "épluche" la liste en cherchant un processus consomant plus de "tel pourcentage".
Sinon tu peux utilisé cela aussi pour avoir direct les plus "gros" (marche pour %mem et %cpu) :

 ps gaxo %mem | sort +0nr | head -n 7 | sed -e 's/-bin//' | sed -e 's/-media-play//'

Sinon tu as omis de présicer le langage que tu utiliseras ?

Dernière modification par gapz (Le 23/06/2006, à 09:00)


Real programmers code in binary :: http://gapz.tuxfamily.org

Hors ligne

#3 Le 05/11/2006, à 16:50

cipher16

Re : detecter un processus fou par la console ou ...

sa marche pas tongue ... la valeur retourner au shell est un string ... pas possible de faire un script avec des "integer"

:s:s

Hors ligne

#4 Le 06/11/2006, à 00:56

gene69

Re : detecter un processus fou par la console ou ...

et alors ? bash ne manipule que des chaines à pas grand chose près $(()) pour faire une addition ...

Tu peux tres bien faire un while en testant une chaine de caractères...


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#5 Le 10/11/2006, à 08:28

cipher16

Re : detecter un processus fou par la console ou ...

ouai mais bof ... testé si une chaine de caractères est supérieur a 90 (où 90 est le pourcentage du temp processeur a depasser pour être déclaré fou tongue )

sinon comment faire pour voir si la chaine de caractère est supérieur a 90 parce que si on se base sur les "strings" et leurs comparaison ... c'est une comparaison sur la longueur de la chaine (enfin quoique en C++ il y ai aussi (si les deux chaine ont la même longueur) la comparaison du code ASCI du caractère pour le ième position des deux chaines ) ... en faisant un truc du style : (faudrait rajouter quelque truc pour réellement choisir le bon logiciel, style avec un sort et un grep)

#!/bin/bash
pid=`ps gaxo %cpu|head -1`
cpu="90.0"
if test $pid -gt $cpu
then 
echo ya un probleme
else
echo sa passe impec
fi;

ce serait quelle comparaison de "test" qu'il faudrait utiliser?? -eq? :s:s
je suis en première année de DUT info ... on a pas encore fait les scripts ... donc j'y connais que dalle (de béton) :s:p:cool:

Hors ligne