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
5736Rechercher 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 emacsRé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 moinsRé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.