GNU/Linux >> Tutoriels Linux >  >> Linux

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

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 que de nombreux autres processus s'exécutent en arrière-plan de votre ordinateur, notamment des programmes permettant de maintenir l'heure système exacte, de surveiller les nouveaux systèmes de fichiers, d'indexer les fichiers, etc.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

La plupart des systèmes d'exploitation ont un moniteur d'activité du système quelconque afin que vous puissiez savoir quels processus sont en cours d'exécution à tout moment. Linux en propose quelques-uns parmi lesquels vous pouvez 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, il est courant pour ceux qui jouent un rôle actif dans la gestion de leur ordinateur d'examiner un processus spécifique.

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 package procps-ng, 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 trouvent les processus par nom de commande.

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

$ pidof bash 
1776 5736

Le pgrep La commande autorise les expressions régulières (regex) :

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

Rechercher un PID par fichier

Vous pouvez trouver le PID du processus en utilisant un fichier spécifique avec le fuser commande.

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

Obtenir un nom de processus par PID

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

$ ps 3234
 PID TTY      STAT   COMMANDE HEURE
5736 pts/1    Ss     0:00 emacs

Répertorier tous les processus

Le ps La commande répertorie les processus. Vous pouvez lister tous les processus de votre système avec le -e choix :

$ ps -e | moins
PID TTY          TIME CMD
  1 ? 00:00:03 systemd
  2 ? 00:00:00 kthread
  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 moins
(FIN)

Énumérez 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 | moins
 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-porte-clés-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 (à peu près une centaine, selon le système sur lequel vous l'exécutez) processus à trier.

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

$ pstree -U tux -u --show-pids
[...]
├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)
│                      └─{gvfsd-metadata}(3924)
├─ibus-portal(3836)─┬─{ibus-portal}(3840)
│                           └-4─}{ibus-portal}{ibus-portal} 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)

Énumérez uniquement vos processus avec le 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 ? Stux  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 moins

Résoudre les problèmes 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 d'exécution avec pmap :

$ pmap 1776
5736 :  bash
000055f9060ec000   1056K r-x-- bash
000055f9063f3000     16K r---- bash
000055f906400000     40K rw-on /> 00007FAF0FA67000 9040KR R - S- passwd
00007FAF1033B000 40k R-x--1fr /> 00007FAF10345000 2044K ----- libnss_sss.so.2
00007FAF10545000 4K RW --- libnss_sss.so.2
00007faf10546000 212692K r---- archive-locale
00007faf1d4fb000   1776K r-x-- libc-2.28.so
00007faf1d6b7000   2044K ----- libc-2.28.so br />00007faf1d8ba000      8K rw--- libc-2.28.so
[...]

ID de processus

Le procps-ng package contient toutes les commandes dont vous avez besoin pour rechercher 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, ou que vous enquêtiez sur une erreur, ou que vous cherchiez à optimiser les performances de votre ordinateur, apprendre ces commandes vous donne un avantage significatif pour comprendre votre système d'exploitation.


Linux
  1. Alimentez votre éditeur de texte de terminal Linux avec ed

  2. Partez à l'aventure dans votre terminal Linux

  3. Sécurité Linux :protégez vos systèmes avec fail2ban

  4. En savoir plus sur votre système Linux avec inxi

  5. Comment surveiller les performances du système Linux avec Sysstat

Comment sauver votre système Windows ou Linux avec Rescatux

5 choses à faire lorsque l'interface graphique de votre système Linux se fige

Surveiller l'utilisation des ressources du système Linux avec SysMonTask

Dépanner et surveiller les performances du système Linux avec nmon

Comment surveiller vos serveurs Linux avec Checkmk

Comment installer Sysdig pour surveiller votre système Linux