Trouver le pid d’un processus

Chaque programme lancé sur un système Linux est identifié par un numéro qui lui est propre : le PID (process ID / IDentifiant du processus).

Ce numéro peut être obtenu via « ps« , qui fourni un instantané des processus en cours :

09:23:52 fhh@mafalda ~ $ ps ux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...
fhh       3288  2.2  3.3 422856 115844 ?       Sl   08:59   0:33 /bin/firefox
...

Dans cet exemple, « firefox » est actif sous le numéro « 3288 » (seconde colonne).

Une autre solution, plus adaptée au scripting est « pidof » :

19:34:26 athena ~ # pidof udevd
29146 29145 513

Parmi les options de « pidof » nous trouvons « -o » (pour omit) qui retire le pid spécifié de la liste des PIDs retournés (%PPID est remplacé par le pid du shell exécutant la commande « pidof ») :

19:38:11 athena ~ # pidof -o 513 udevd
29146 29145

« -s » Retourne un seul numéro de processus (pas nécessairement celui recherché).

Référence

man « pidof » : http://linux.die.net/man/8/pidof

3 réflexions au sujet de « Trouver le pid d’un processus »

  1. Quid des applications invisibles via ps ?

    Si j’en crois le package « unhide » (debian) qui contient une suite d’applications pour révéler des applications « cachés ».
    A vrai dire, je n’ai pas compris pourquoi certains processus etaient « cachés » (mis a par les virus et trojans… sous Linux???).

    A+

    1. Je n’ai pas testé sur les process cachés mais je doute que « pidof » ne les trouve. Dans mon esprit, seuls les outils d’analyse poussés permettent de trouver ce type de process. D’ailleurs quand on recherche « unhide » dans la liste des paquets debian, il apparaît au coté d' »unhide.rb » destiné à détecter les « rootkits » :

      unhide      - Forensic tool to find hidden processes and ports                          
      unhide.rb   - Forensic tool to find processes hidden by rootkits

      … nous sommes dans des outils d’un niveau bien supérieur à « pidof »…

      Au passage, je vois bien comment changer le nom affiché par un programme dans la liste des processus (retournée par « ps »), mais je n’ai aucune idée de comment « cacher » un process…. Changer le nom affiché revient à cacher le process, mais est-il possible de le faire complètement disparaître ? Si quelqu’un à une idée …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *