Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel explore les bases de l'identification des processus dans le système d'exploitation Linux. Vous apprendrez à lister et à surveiller les processus en cours d'exécution, à comprendre le concept d'identifiants de processus (PIDs) et à utiliser les PIDs pour contrôler les processus. Maîtriser ces compétences est essentiel pour les administrateurs de systèmes Linux et les développeurs afin de gérer efficacement et de résoudre les problèmes de leurs systèmes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux/ProcessManagementandControlGroup -.-> linux/kill("Process Terminating") linux/ProcessManagementandControlGroup -.-> linux/killall("Multi-Process Killing") linux/ProcessManagementandControlGroup -.-> linux/pkill("Pattern-Based Killing") linux/ProcessManagementandControlGroup -.-> linux/wait("Process Waiting") linux/ProcessManagementandControlGroup -.-> linux/bg_process("Background Management") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/kill -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/killall -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/pkill -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/wait -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/bg_process -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/ps -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} linux/top -.-> lab-409851{{"Comment trouver l'identifiant de processus d'un processus en cours d'exécution dans Linux"}} end

Comprendre l'identification des processus Linux

Dans le système d'exploitation Linux, chaque processus en cours d'exécution est assigné un identifiant unique appelé Identifiant de processus (PID). Comprendre comment identifier et gérer les processus est une compétence fondamentale pour les administrateurs de systèmes Linux et les développeurs. Cette section explorera les bases de l'identification des processus Linux, notamment comment récupérer les informations sur les processus et utiliser les PIDs pour contrôler les processus.

Concept d'identification des processus

Dans Linux, un processus est une instance d'un programme en cours d'exécution. Chaque processus est assigné un PID unique, qui est une valeur entière servant d'identifiant au processus. Le PID est utilisé pour faire référence au processus et interagir avec lui, par exemple en envoyant des signaux, en surveillant son statut ou en le terminant.

La plage de PIDs dans Linux commence généralement à 1 (le processus init) et peut aller jusqu'à une valeur maximale, qui est généralement 32767 (sur les systèmes 32 bits) ou 4194303 (sur les systèmes 64 bits). Lorsqu'un nouveau processus est créé, le système d'exploitation lui assigne le PID disponible suivant.

Récupérer les informations sur les processus

Vous pouvez utiliser diverses commandes Linux pour lister et surveiller les processus en cours d'exécution, telles que :

## List all running processes
$ ps -ef

## List processes owned by the current user
$ ps -u

## List processes in a tree-like hierarchy
$ pstree

Ces commandes fournissent des informations détaillées sur chaque processus, notamment le PID, l'utilisateur qui a lancé le processus, la commande utilisée pour lancer le processus et les relations parent-enfant des processus.

graph TD init(init process) init --> sshd sshd --> bash bash --> ps

Dans l'exemple ci-dessus, la commande ps est un processus enfant du shell bash, qui est un processus enfant du démon sshd, qui est finalement un processus enfant du processus init (le premier processus lancé par le noyau Linux).

Utiliser les identifiants de processus pour contrôler les processus

Le PID peut être utilisé pour interagir avec un processus spécifique, par exemple en lui envoyant des signaux. Par exemple, vous pouvez utiliser la commande kill pour terminer un processus :

## Terminate a process by its PID
$ kill 12345

Vous pouvez également utiliser le PID pour surveiller le statut d'un processus, son utilisation des ressources et d'autres caractéristiques en utilisant des commandes telles que top, htop ou strace.

En comprenant l'identification des processus Linux, vous pouvez gérer et contrôler efficacement les processus en cours d'exécution sur votre système, ce qui est essentiel pour les tâches d'administration système, de résolution de problèmes et de développement d'applications.

Lister et surveiller les processus en cours d'exécution

Lister et surveiller efficacement les processus en cours d'exécution est une tâche cruciale pour les administrateurs de systèmes Linux et les développeurs. Cette section explorera les diverses commandes et techniques disponibles dans Linux pour lister, filtrer et surveiller les processus en cours d'exécution.

Lister les processus en cours d'exécution

La commande principale utilisée pour lister les processus en cours d'exécution dans Linux est ps (état des processus). La commande ps fournit un instantané des processus actuels et des informations associées, telles que l'identifiant de processus (PID), l'utilisateur, l'utilisation du CPU et de la mémoire, et la commande utilisée pour démarrer le processus.

Voici quelques variantes courantes de la commande ps :

## List all running processes
$ ps -ef

## List processes owned by the current user
$ ps -u

## List processes in a tree-like hierarchy
$ ps -ejH

Vous pouvez également utiliser la commande top, qui fournit une vue en temps réel des processus en cours d'exécution et de leur utilisation des ressources :

## Monitor running processes in real-time
$ top

Filtrer et trier les processus

Pour filtrer la liste des processus en cours d'exécution, vous pouvez utiliser la commande grep en combinaison avec ps :

## List processes containing the word "nginx"
$ ps -ef | grep nginx

Vous pouvez également trier la liste des processus selon divers critères, tels que l'utilisation du CPU ou de la mémoire, en utilisant la commande sort :

## Sort processes by CPU usage in descending order
$ ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -n 10

Surveiller l'activité des processus

Pour surveiller l'activité d'un processus spécifique, vous pouvez utiliser la commande strace, qui capture et affiche tous les appels système effectués par le processus :

## Monitor system calls made by the "nginx" process
$ strace -p $(pgrep nginx)

De plus, la commande htop fournit une vue interactive en temps réel des processus en cours d'exécution, vous permettant de trier, de filtrer et d'effectuer diverses actions sur les processus.

En maîtrisant les techniques de listing et de surveillance des processus en cours d'exécution, vous pouvez résoudre efficacement les problèmes, optimiser les performances du système et gérer les processus en cours d'exécution sur votre système Linux.

Utiliser les identifiants de processus pour contrôler les processus

L'identifiant de processus (PID) unique assigné à chaque processus en cours d'exécution dans Linux peut être utilisé pour contrôler et gérer ces processus. Cette section explorera comment utiliser les PIDs pour diverses tâches de contrôle des processus, telles que l'envoi de signaux, la surveillance de l'état des processus et la communication inter-processus.

Envoi de signaux aux processus

L'une des utilisations les plus courantes des PIDs est l'envoi de signaux aux processus. Les signaux sont une forme de communication inter-processus dans Linux, et ils peuvent être utilisés pour effectuer diverses actions sur un processus, comme le terminer, le suspendre ou demander des comportements spécifiques.

La commande kill est utilisée pour envoyer des signaux aux processus. Par exemple, pour terminer un processus avec le PID 12345, vous pouvez utiliser la commande suivante :

$ kill 12345

Vous pouvez également utiliser la commande kill avec différents noms ou numéros de signaux pour effectuer d'autres actions, telles que :

## Send the SIGINT (interrupt) signal to a process
$ kill -SIGINT 12345

## Send the SIGTERM (terminate) signal to a process
$ kill -SIGTERM 12345

## Send the SIGKILL (kill) signal to a process
$ kill -SIGKILL 12345

Surveillance de l'état des processus

Le PID peut également être utilisé pour surveiller l'état et l'utilisation des ressources d'un processus spécifique. Des commandes telles que top, htop et ps peuvent être utilisées pour récupérer des informations détaillées sur un processus, comme son utilisation du CPU et de la mémoire, l'utilisateur exécutant le processus et la commande utilisée pour le démarrer.

Par exemple, pour afficher l'utilisation des ressources en temps réel d'un processus avec le PID 12345, vous pouvez utiliser la commande suivante :

$ top -p 12345

Communication inter-processus

Les PIDs peuvent également être utilisés pour la communication inter-processus (IPC) dans Linux. Un mécanisme d'IPC courant est l'utilisation de signaux, comme mentionné précédemment. Un autre mécanisme d'IPC est l'utilisation de mémoire partagée, où les processus peuvent échanger des données en lisant et en écrivant dans une région de mémoire partagée.

En comprenant comment utiliser les PIDs pour le contrôle des processus, vous pouvez gérer et interagir efficacement avec les processus en cours d'exécution sur votre système Linux, ce qui est essentiel pour les tâches d'administration système, de résolution de problèmes et de développement d'applications.

Résumé

Dans ce tutoriel, vous avez appris les bases de l'identification des processus dans Linux. Vous comprenez maintenant le concept des PIDs, comment récupérer les informations sur les processus à l'aide de commandes telles que ps et pstree, et comment utiliser les PIDs pour interagir avec et contrôler les processus en cours d'exécution. Ces compétences sont cruciales pour gérer et maintenir un environnement Linux sain, que vous soyez un administrateur système ou un développeur. En appliquant les techniques présentées dans ce tutoriel, vous pouvez surveiller, gérer et résoudre efficacement les problèmes liés aux processus sur vos systèmes Linux.