Bonjour,
J'ai un petit soucis avec un script shell que voici :
Je souhaite vérifier le nombre de process qui tourne sur ma machine. Le process est placé en argument quand j'appelle le script.
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 #!/bin/bash nb_occurence=`ps -edf | grep $1 | grep -v "grep" | wc -l` if [ $nb_occurence -eq 0 ] then echo "CRITICAL : process $1 not running" exit 2 else if [ $nb_occurence -eq 1 ] then echo "OK : process $1 running" fi if [ $nb_occurence -gt 1 ] then echo "WARNING : plusieurs process $1 running" exit 1 fi fi
Si j'exécute la commande sans le script, voila ce que cela donne :
# ps -edf | grep httpd | grep -v "grep" | wc -l
10
Si j'exécute mon script en debug, voici ce que j'obtiens :
+ echo 'WARNING : plusieurs process httpd running'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 # bash -x check_process.sh httpd ++ ps -edf ++ grep httpd ++ grep -v grep ++ wc -l + nb_occurence=13 + '[' 13 -eq 0 ']' + '[' 13 -eq 1 ']' + '[' 13 -gt 1 ']'
WARNING : plusieurs process httpd running
+ exit 1[/CODE]
Au lieu de compter 10 occurrences, mon script en compte 13.
Si quelqu'un a une idée pour corriger cela ?
Merci d'avance.
Partager