Re: Décompte différent dans un script et en ligne de command…

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: Décompte différent dans un script et en ligne de commande
Bonsoir !

J'arrive un peu après la bataille, mais il y a un truc qui me choque
dans ce pipeline...

Patrice Karatchentzeff a écrit :
> ps -edf | grep -c thunderbird


Je vois une « race condition » ici. Le shell va demander au noyau de
lancer deux processus, et celui-ci va les lancer « à peu près » au même
temps. Au moment où ps lit /proc, il est possible que grep soit déjà
présent dans la table des processus, et il est aussi possible qu'il n'y
soit pas encore. Ça va dépendre, entre autres, de la charge système, de
l'âge du capitaine, du fait que la commande soit lancée par un script,
et de la phase de la lune.

Pour remédier à ça, on peut prendre grep taper sur grep :

    ps -edf | grep -v grep | grep -c thunderbird


ou utiliser cette astuce qui date au moins du siècle denier :

    ps -edf | grep -c '[t]hunderbird'


À+,

Edgar.