Sous Linux, ppid fait référence au PID du processus parent, c'est-à-dire le numéro d'identification du processus parent. Lorsqu'un processus est créé, le processus qui l'a créé est appelé processus parent. Le processus enfant utilise le PPID pour indiquer qui est son processus parent ; vous pouvez exécuter la commande "ps -ef | grep process name" pour l'afficher. troisième colonne du résultat de sortie C'est la valeur ppid.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Un processus contient plusieurs paramètres d'attribut. En utilisant la commande ps, nous pouvons afficher des informations détaillées sur le processus dans le système actuel, par exemple :
[root@localhost ~]# ps -le F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIMECMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd …省略部分输出…
Vous pouvez voir que chaque processus contient des attributs tels que F, S, UID, PID, etc. , ces paramètres d'attribut déterminent l'ordre dans lequel les processus sont traités, les ressources accessibles, etc., et sont très importants à la fois pour les administrateurs système et les programmeurs.
L'article suivant vous présentera les paramètres d'attributs courants tels que UID, PID, PPID.
UID (Real User ID)
UID est l'abréviation de User Identification. Après l'enregistrement d'un utilisateur UID, le système vous donnera automatiquement une valeur UID. Cela signifie donner un numéro à cet utilisateur.
Seuls le créateur du processus et l'utilisateur root ont le droit d'exploiter le processus, il est donc très nécessaire d'enregistrer le créateur (c'est-à-dire le propriétaire) d'un processus. L'UID d'un processus est le numéro d'identification de l'utilisateur de son créateur, qui permet d'identifier le propriétaire du processus.
EUID (Effective User ID)
En plus de l'UID, Linux enregistre également un "numéro d'identification d'utilisateur effectif" pour le processus, appelé EUID. Ce numéro UID spécial est utilisé pour déterminer les droits d'accès d'un processus à certaines ressources et fichiers. Dans la plupart des cas, l'UID et l'EUID d'un processus sont les mêmes, à l'exception du fameux programme setuid.
Alors, qu'est-ce qu'un programme setuid ? Comme mentionné précédemment, la commande passwd permet aux utilisateurs de modifier leur mot de passe de connexion. Mais les lecteurs ont-ils réfléchi à ce problème ? Le mot de passe est stocké dans le fichier /etc/shadow. Ce fichier n'est pas lisible par les utilisateurs ordinaires. Alors pourquoi les utilisateurs peuvent-ils changer leur mot de passe en modifiant le fichier shadow ?
C'est la beauté de setuid. En donnant à passwd les autorisations du propriétaire du fichier (c'est-à-dire root) pendant la phase d'exécution, l'utilisateur peut temporairement avoir la possibilité de modifier le fichier shadow (bien sûr, cette capacité est limitée) . Par conséquent, passwd est un programme setuid typique, dont l'UID est l'ID de l'utilisateur exécutant actuellement cette commande et l'EUID est l'ID de l'utilisateur root (c'est-à-dire 0).
PID (numéro d'identification du processus)
Le système attribue à chaque utilisateur un numéro d'identification (UID) qui identifie son identité. De même, un processus possède également un tel numéro d'identification, appelé PID (Process Identification).
Vous devez savoir qu'utiliser l'ID pour identifier des processus est très bénéfique, car pour les ordinateurs, il est toujours plus pratique de reconnaître des nombres que de reconnaître une chaîne de caractères. Linux n'a pas besoin de comprendre ces processus qui sont très « significatifs » pour cela. nom des humains.
Non seulement Linux lui-même utilise le PID pour identifier les processus, mais il oblige également les utilisateurs à fournir les numéros PID correspondants lors de la gestion des processus. En fait, presque tous les outils de gestion de processus acceptent les numéros PID au lieu des noms de processus.
PPID (PID du processus parent)
Sous Linux, tous les processus doivent être créés par un autre processus (à l'exception des processus créés et installés de manière autonome par le noyau au démarrage du système). Lorsqu'un processus est créé, le processus qui l'a créé est appelé processus parent et le processus est appelé processus enfant.
Le processus enfant utilise le PPID pour indiquer qui est son "père". Il est facile de comprendre que PPID fait référence au PID de son processus parent.
Notez que dans la description ci-dessus, le mot « créer » est utilisé plusieurs fois. C'est pour faciliter l'expression et la compréhension. En fait, sous Linux, les processus ne peuvent pas être créés « à partir de rien ». ne fournit pas d'appel système pour permettre aux applications de « créer » un processus. Les applications ne peuvent générer de nouveaux processus qu'en se clonant.
Explication :
PID et PPID sont tous deux des entiers non nuls.
PID est unique et un PID n'identifie qu'un seul processus.
Un autre nouveau processus créé par un processus est appelé processus enfant. À l’inverse, le processus qui crée le processus enfant est appelé processus parent.
Pour un processus utilisateur ordinaire, son processus parent est le Shell qui l'exécute. Pour Linux, le Shell est bash.
Méthode Linux pour afficher le PID et le PPID du processus
Exemple : Afficher le numéro PID du processus nginx, ps -ef | grep nginx
Après l'exécution, le numéro PID et PPID du processus peut être renvoyé
La commande utilise des extensions pour mettre fin de force à un processus
Exemple, mettre fin de force au processus nginx
Recommandations associées : "Tutoriel vidéo Linux"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!