Articles

9 façons de trouver L’ID de processus d’un programme sous Linux

lorsque vous travaillez sur un système Linux, vous devez parfois déterminer quels processus sont en cours d’exécution et quel PID ou PPID y est lié. Il peut être utilisé à de nombreuses fins.

Fondamentalement, nous recherchons un PID dans Linux pour tuer un programme qui ne répond pas, ce qui peut être fait par le gestionnaire de tâches GUI, mais CLI est le moyen le plus efficace de gérer les programmes qui ne répondent pas.

c’est mieux que L’interface graphique, car parfois les outils basés sur L’interface graphique peuvent ne pas afficher le processus caché en cours d’exécution.,

dans ce tutoriel, nous allons vous montrer comment trouver l’ID de processus (PID) d’un programme s’exécutant de plusieurs façons sous Linux.

qu’est-ce que l’ID de processus (PID)

PID fait référence à l’ID de processus, qui est couramment utilisé par la plupart des noyaux de système d’exploitation, tels que Linux, Unix, MacOS et Windows.

Il s’agit d’un identifiant unique qui est automatiquement attribué à chaque processus lors de sa création. Un processus est une instance en cours d’exécution d’un programme.

QU’est-ce que l’ID de processus parent (PPID)

un processus parent est un processus qui a créé un ou plusieurs processus enfants., Chaque processus enfant reçoit un identifiant de processus Parental (PPID), et le processus parent tue l’enfant lorsqu’il termine son opération.

vous pourriez être intéressé de lire les articles ci-dessous, car ceux-ci sont liés à ce sujet.

  • Comment savoir quel numéro de Port un processus utilise sous Linux
  • 3 façons simples de tuer ou de terminer un processus sous Linux

chaque fois que l’ID du processus est changé en tous les processus sauf init. l’init est toujours le premier processus dans le système et l’ancêtre de tous les autres processus. Il détient PID 1.,

la valeur maximale par défaut des PID est32,768. Cela peut être vérifié en exécutant la commande suivante

cat /proc/sys/kernel/pid_max sur votre ordinateur.

32,768 est la valeur maximale sur les systèmes 32 bits, mais peut être réglé à n’importe quelle valeur jusqu’à 2^22 (environ 4 millions) sur les systèmes 64 bits.

Vous pouvez demander, Pourquoi avons-nous besoin de tels PID de taille? En effet, les pid ne peuvent pas être réutilisés immédiatement et pour éviter les erreurs potentielles.,

Vous pouvez trouver le PID des processus s’exécutant sur le système en utilisant les neuf méthodes ci-dessous, telles que la commande pidof, la commande pgrep, la commande ps, la commande pstree, la commande ss, la commande netstat, la commande lsof, la commande fuser et la commande systemctl.

ceci peut être réalisé en utilisant les neuf méthodes ci-dessous.

  • pidof: pidof – trouver l’ID de processus de l’exécution d’un programme.
  • pgrep: pgre – recherche ou signal des processus basés sur le nom et d’autres attributs.,
  • ps: ps – signaler un instantané des processus actuels.
  • pstree: pstree – affiche une arborescence de processus.
  • ss: ss est utilisé pour vider les statistiques de socket.
  • netstat: netstat affiche une liste d’ouvrir des sockets.
  • lsof: lsof – liste les fichiers ouverts.,
  • fuser: fuser – list ID de processus de tous les processus qui ont un ou plusieurs fichiers ouverts
  • systemctl: systemctl – contrôler le gestionnaire de système et de service systemd

pour le prouver, nous allons trouver L’ID de processus Apache. Assurez-vous d’entrer votre nom de processus au lieu de nous.

1) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande pidof?

la commande pidof est utilisée pour trouver L’ID de processus du programme en cours d’exécution. Il imprime ces identifiants dans la sortie standard., Pour le démontrer, nous allons trouver l’id de processus ‘Apache2’ dans le système.

# pidof apache2
2594 2365 2364 2363 2362 2361

dans la sortie ci-dessus, vous pouvez avoir des difficultés à identifier L’ID du processus car il affiche tous les pid (y compris le parent et l’enfant) par rapport au nom du processus.

Nous devons donc trouver le processus Parent PID (PPID), ce que nous recherchons. Ce sera le premier numéro. Dans mon cas, c’est 3754 et il est trié par ordre décroissant.

2) Comment rechercher un ID de processus (PID) sous Linux, en utilisant la commande pgrep?,

la commande pgrep examine les processus en cours d’exécution et répertorie les ID de processus qui correspondent aux critères de sélection.

# pgrep apache2236123622363236423652594

la sortie ci-dessus est similaire à la sortie de la commande ‘pidof’, mais elle triait les résultats par ordre croissant, ce qui montre clairement que le processus parent PID se trouve à last.In mon cas est 3754.,

Remarque: L’identification de l’ID de processus parent peut être problématique lors de l’utilisation de la commande ‘pidof’& ‘pgrep’, car chaque processus est livré avec un seul PPID et plusieurs PID qui ne montrent pas la différence entre eux.

3) Comment localiser un ID de processus (PID) sous Linux, en utilisant la commande pstree?

la commande pstree montre les processus en cours d’exécution sous forme d’arborescence, ce qui est un moyen très pratique d’afficher la hiérarchie des processus et rend la sortie plus attrayante visuellement., Si un nom d’utilisateur est spécifié dans la commande pstree, il affiche tout le processus appartenant à l’utilisateur correspondant.

pstree fusionne visuellement des branches identiques en les mettant entre crochets et en les préfixant avec le nombre de répétitions.

# pstree -p | grep "apache2" |-
-+-apache2(2361) | |-apache2(2362) | |-apache2(2363) | |-apache2(2364) | |-apache2(2365) | `-apache2(2594)

Pour obtenir uniquement le processus parent, utilisez le format suivant.

# pstree -p | grep "apache2" | head -1 |-
-+-apache2(2361)

la commande‘pstree’ est bien meilleure que la commande ‘pidof’& ‘pgrep’ car elle sépare les processus parents et enfants qui ne sont pas possibles par eux.,

4) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande ps?

la commande ps affiche des informations sur une sélection des processus actifs qui comprend L’ID du processus (pid=PID), le terminal associé au processus (tname=TTY), le temps CPU cumulé au format hh:mm:ss (time=TIME) et le nom de l’exécutable (ucmd=CMD). La sortie n’est pas triée par défaut.

L’ID de processus Parent (PPID) peut être facilement identifié en fonction de la date de début du processus à partir de la sortie ci-dessus., Dans notre cas, le processus ‘Apache2 ‘ a démarré sur December 11th, qui est le processus parent et les autres le processus enfant. Le PID de Apache2 est 3754.

5) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande ss?

la commande ss est utilisée pour vider les statistiques de socket. Il permet d’Afficher des informations similaires à netstat. Il peut afficher plus D’informations TCP et d’état que d’autres outils.

Il peut afficher des statistiques pour tous les types de sockets tels que PACKET, TCP, UDP, DCCP, RAW, Unix domain, etc.,

# ss -tnlp | grep apache2LISTEN 0 128 :::80 :::* users:(("apache2",pid=3319,fd=4),("apache2",pid=3318,fd=4),("apache2",
,fd=4))

6) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande netstat?

la commande netstat est utilisée pour imprimer les connexions réseau, les tables de routage, les statistiques d’interface, les connexions masquées et les adhésions multidiffusion. Par défaut, netstat affiche une liste de sockets ouverts.

Si vous ne spécifiez aucune famille d’adresses, les sockets actifs de toutes les familles d’adresses configurées seront imprimés. Ce programme est obsolète. Le remplacement de netstat est SS.

# netstat -tnlp | grep apache2tcp6 0 0 :::80 :::* LISTEN 

7) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande lsof?,

la commande lsof est utilisée pour lister les fichiers ouverts. La commande Linux lsof répertorie les informations sur les fichiers ouverts par les processus s’exécutant sur le système.

8) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande de fusion?

l’utilitaire de fusion doit écrire dans la sortie standard les ID de processus des processus en cours d’exécution sur le système local qui ont un ou plusieurs fichiers nommés ouverts.

# fuser -v 80/tcp USER PID ACCESS COMMAND80/tcp: root 
www-data 3318 F.... apache2 www-data 3319 F.... apache2

9) Comment trouver un ID de processus (PID) sous Linux, en utilisant la commande systemctl?

la commande systemctl est utilisée pour contrôler le gestionnaire de services systemd., Il s’agit d’un remplacement de L’ancienne gestion du système SysVinit, et la plupart des systèmes D’exploitation Linux modernes ont été déplacés vers systemd.