Re: ps ax | grep grep

Top Page

Reply to this message
Author: Ligier Philippe
Date:  
To: ML Guilde
Subject: Re: ps ax | grep grep
Le Mercredi 12 Février 2003 09:33, vous avez écrit :
> Bonjour,
>
> Quand je lance :
>
>    $ ps ax | grep grep

>
> je vois apparaitre :
>
>    23152 pts/1    S      0:00 grep grep

>
> Je pense que c'est du au fait que la commande 'grep grep' est lancee tout
> de suite, et traite la sortie de 'ps ax' a mesure que celle-ci s'execute.
> Donc 'ps ax' voit le process grep. En faisant :
>
>    $ ps ax | grep grep | grep -v grep

>
> ca resoud le probleme, mais y a-t-il plus elegant ? Comme faire en sorte
> que le process 'grep' ne soit lance qu'apres la fin de l'execution de
> 'ps'?


Si le but est de retrouver toutes les commandes correspondant à un motif, on
peut à la place de

    ps   <la_commande_cherchée>  |  egrep  <la_commande_cherchée>


utiliser une des (nombreuses options) de ps :

    ps -C <la_commande_cherchée>


Il existe aussi :

    -u <utilisateur>
    -p <pid>
    -t <tty>
    - etc


Remarque : si on a juste besoin du pid de ces processus pour leur envoyer un
signal, il existent les deux excellentes commandes 'pgrep' et 'pkill' (En fait
c'est le même fichier exécutable avec deux références).

Pour lister les processus correspondante à une commande :

    pgrep <commande>


pour leur envoyer un signal :

    pkill -<signal>  <commande>


Et en prime il y a une multitude d'options complémentaires (voir man pgrep).