Bonjour,
Je cherche comment faire un compteur:
Voila, j'ai une appli quand elle fonctionne génère beaucoup de process.
Quand j'arrête l'appli, cela prend environ 60 minutes.
Après 1 h il reste que très peu de process que je peux killer, mais cela cree des problèmes a la base qui d'une autre commande je la répare.
Ce que je souhaite faire, c'est :
1) arrêt de l'appli
2) faire un compteur qui toute les 60s vérifie le nombre de process puis au bout de 60 minutes kill ce qui reste.
3) si y a kill, lance la réparation de la base.
Le point 1 et 3 j'ai trouve mais pas le point 2.
Pour le point 2 j'ai pensé:
Pros='ps -ef | grep "mon process" | grep -c " "`
for i = 60s in 1
if [ $Pros ! = 0 ]
then
heu désolé je ne trouve pas.
En faite j'ai pas d'idée comment faire.
Quelqu'un aurrait il une idée ?
Merci d'avance.
# Hmm ...
Posté par LaBienPensanceMaTuer . Évalué à 1.
# Peut-être ?
Posté par benoar . Évalué à 2.
[^] # Re: Peut-être ?
Posté par khan . Évalué à 1.
ps afx | grep le_nom_du_process_ | wc -l
attention a ne pas choper le grep dans les reponses...
le nom_du_process doit etre bien clair pour eviter ca.
K.
[^] # Re: Peut-être ?
Posté par gaaaaaAab . Évalué à 2.
ps <options de ps adapatées> | grep nom_du_proces[s]
l'explication, c'est que grep interprête [] quand il s'exécute (et le remplace par le bête caractère entre crochet), ce qui ne match plus la ligne du grep (qui elle contient toujours la paire de crochet)
C'est p-e plus clair en le testouillant soi même :-)
[^] # Re: Peut-être ?
Posté par benoar . Évalué à 3.
et h pour supprimer le header ...
[^] # Re: Peut-être ?
Posté par gaaaaaAab . Évalué à 1.
A noter quand même que le -C est une option du ps GNU et donc pas portable sur HP et Solaris ...
[^] # Re: Peut-être ?
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
Si on tient à utiliser grep, on peut utiliser son option -c :
ps afx | grep le_nom_du_process_ -c
Mais bon, tant qu'à faire, autant éviter d'utiliser grep, on évitera du même coup les "erreurs" de sortie embêtante :
ps -C sshd --no-headers | wc -l
[^] # Re: Peut-être ?
Posté par snt . Évalué à 3.
$ ps -C sshd --no-headers > /dev/null && echo "sshd existe"
>sshd existe
$ ps -C sshda --no-headers > /dev/null || echo "sshda n existe pas"
>sshda n existe pas
[^] # Re: Peut-être ?
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
En même temps, si le but est juste de savoir si un processus tourne ou non, j'ai l'impression que killall et moins coûteux que ps :
killall -0 sshd && echo "sshd est vivant" ||echo "sshd plus là..."
Mais nécessite d'être root...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.