Le 29 janvier 2024 22:18:19 GMT+01:00, Edgar Bonet <guilde@???> a écrit :
>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.
>
Bonsoir,
Je ne sais pas si c'est élégant, mais c'est astucieux !
Je m'étonne de ne l'avoir jamais vu passer (alors que j'ai maintes fois pesté contre ce comportement inconsistant).
"Si c'est bête mais que ça fonctionne, c'est que ce n'est pas bête".
Amitiés
--
Gwenn Boussard