Surveillez votre système Linux dans votre terminal avec procps-ng


  • FrançaisFrançais


  • Un processus, dans la terminologie POSIX, est un événement continu géré par le noyau d’un système d’exploitation. Un processus est généré lorsque vous lancez une application, bien qu’il existe de nombreux autres processus en cours d’exécution en arrière-plan de votre ordinateur, y compris des programmes pour garder l’heure de votre système précise, pour surveiller les nouveaux systèmes de fichiers, pour indexer les fichiers, etc.

    La plupart des systèmes d’exploitation disposent d’un moniteur d’activité système afin que vous puissiez savoir quels processus sont en cours d’exécution à tout moment. Linux en a quelques-uns parmi lesquels choisir, notamment GNOME System Monitor et KSysGuard. Les deux sont des applications utiles sur le bureau, mais Linux offre également la possibilité de surveiller votre système dans votre terminal. Quel que soit votre choix, l’examen d’un processus spécifique est une tâche courante pour ceux qui jouent un rôle actif dans la gestion de leur ordinateur.

    Dans cet article, je montre comment trouver l’ID de processus (PID) d’un programme. Les outils les plus courants pour cela sont fournis par le procps-ng paquet, y compris le ps et pstree, pidof, et pgrep commandes.

    Trouver le PID d’un programme en cours d’exécution

    Parfois, vous souhaitez obtenir l’ID de processus (PID) d’une application spécifique que vous savez exécuter. Le pidof et pgrep les commandes recherchent les processus par nom de commande.

    Le pidof La commande renvoie les PID d’une commande, en recherchant la commande exacte par son nom :

    
    

    The pgrep command allows for regular expressions (regex):

    $ pgrep .sh
    1605
    1679
    1688
    1776
    2333
    5736
    $ pgrep bash
    5736

    Trouver un PID par fichier

    Vous pouvez trouver le PID du processus à l’aide d’un fichier spécifique avec le fuser commander.

    $ fuser --user ~/example.txt                    
    /home/tux/example.txt:  3234(tux)

    Obtenir un nom de processus par PID

    Si vous avez le PID numéro d’un processus mais pas de la commande qui l’a engendré, vous pouvez faire une “recherche inversée” avec ps:

    $ ps 3234
     PID TTY      STAT   TIME COMMAND
    5736 pts/1    Ss     0:00 emacs

    Lister tous les processus

    Le ps la commande liste les processus. Vous pouvez répertorier tous les processus de votre système avec le -e option:

    $ ps -e | less
    PID TTY          TIME CMD
      1 ?        00:00:03 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 rcu_gp
      4 ?        00:00:00 rcu_par_gp
      6 ?        00:00:00 kworker/0:0H-events_highpri
    [...]
    5648 ?        00:00:00 gnome-control-c
    5656 ?        00:00:00 gnome-terminal-
    5736 pts/1    00:00:00 bash
    5791 pts/1    00:00:00 ps
    5792 pts/1    00:00:00 less
    (END)

    Lister uniquement vos processus

    La sortie de ps -e peut être accablant, alors utilisez -U pour voir les processus d’un seul utilisateur :

    $ ps -U tux | less
     PID TTY          TIME CMD
    3545 ?        00:00:00 systemd
    3548 ?        00:00:00 (sd-pam)
    3566 ?        00:00:18 pulseaudio
    3570 ?        00:00:00 gnome-keyring-d
    3583 ?        00:00:00 dbus-daemon
    3589 tty2     00:00:00 gdm-wayland-ses
    3592 tty2     00:00:00 gnome-session-b
    3613 ?        00:00:00 gvfsd
    3618 ?        00:00:00 gvfsd-fuse
    3665 tty2     00:01:03 gnome-shell
    [...]

    Cela produit 200 processus de moins (plus ou moins 100, selon le système sur lequel vous l’exécutez) à trier.

    Vous pouvez afficher la même sortie dans un format différent avec le pstree commander:

    $ pstree -U tux -u --show-pids
    [...]
    ├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)
    │                      └─{gvfsd-metadata}(3924)
    ├─ibus-portal(3836)─┬─{ibus-portal}(3840)
    │                   └─{ibus-portal}(3842)
    ├─obexd(5214)
    ├─pulseaudio(3566)─┬─{pulseaudio}(3640)
    │                  ├─{pulseaudio}(3649)
    │                  └─{pulseaudio}(5258)
    ├─tracker-store(4150)─┬─{tracker-store}(4153)
    │                     ├─{tracker-store}(4154)
    │                     ├─{tracker-store}(4157)
    │                     └─{tracker-store}(4178)
    └─xdg-permission-(3847)─┬─{xdg-permission-}(3848)
                            └─{xdg-permission-}(3850)

    Répertoriez uniquement vos processus avec contexte

    Vous pouvez voir un contexte supplémentaire pour tous les processus que vous possédez avec le -u option.

    $ ps -U tux -u
    USER  PID %CPU %MEM    VSZ   RSS TTY STAT START  TIME COMMAND
    tux  3545  0.0  0.0  89656  9708 ?   Ss   13:59  0:00 /usr/lib/systemd/systemd --user
    tux  3548  0.0  0.0 171416  5288 ?   S    13:59  0:00 (sd-pam)
    tux  3566  0.9  0.1 1722212 17352 ?  S<sl 13:59  0:29 /usr/bin/pulseaudio [...]
    tux  3570  0.0  0.0 664736  8036 ?   SLl  13:59  0:00 /usr/bin/gnome-keyring-daemon [...]
    [...]
    tux  5736  0.0  0.0 235628  6036 pts/1 Ss 14:18  0:00 bash
    tux  6227  0.0  0.4 2816872 74512 tty2 Sl+14:30  0:00 /opt/firefox/firefox-bin [...]
    tux  6660  0.0  0.0 268524  3996 pts/1 R+ 14:50  0:00 ps -U tux -u
    tux  6661  0.0  0.0 219468  2460 pts/1 S+ 14:50  0:00 less

    Dépannage avec les PID

    Si vous rencontrez des problèmes avec une application spécifique, ou si vous êtes simplement curieux de savoir ce qu’une application utilise d’autre sur votre système, vous pouvez voir une carte mémoire du processus en cours avec pmap:

    $ pmap 1776
    5736:   bash
    000055f9060ec000   1056K r-x-- bash
    000055f9063f3000     16K r---- bash
    000055f906400000     40K rw---   [ anon ]
    00007faf0fa67000   9040K r--s- passwd
    00007faf1033b000     40K r-x-- libnss_sss.so.2
    00007faf10345000   2044K ----- libnss_sss.so.2
    00007faf10545000      4K rw--- libnss_sss.so.2
    00007faf10546000 212692K r---- locale-archive
    00007faf1d4fb000   1776K r-x-- libc-2.28.so
    00007faf1d6b7000   2044K ----- libc-2.28.so
    00007faf1d8ba000      8K rw--- libc-2.28.so
    [...]

    ID de processus

    Le procps-ng package contient toutes les commandes dont vous avez besoin pour étudier et surveiller ce que votre système utilise à tout moment. Que vous soyez simplement curieux de savoir comment toutes les parties disparates d’un système Linux s’emboîtent, que vous enquêtiez sur une erreur ou que vous cherchiez à optimiser les performances de votre ordinateur, l’apprentissage de ces commandes vous donne un avantage significatif pour comprendre votre système d’exploitation.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

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

    Copy code