Heim > Artikel > Betrieb und Instandhaltung > Was bedeutet Linux-PPID?
Unter Linux bezieht sich ppid auf die PID des übergeordneten Prozesses, dh auf die Prozess-ID-Nummer des übergeordneten Prozesses. Wenn ein Prozess erstellt wird, wird der Prozess, der ihn erstellt hat, als übergeordneter Prozess bezeichnet. Der untergeordnete Prozess gibt an, wer sein übergeordneter Prozess ist. Sie können den Befehl „ps -ef | grep Prozessname“ ausführen Dritte Spalte des Ausgabeergebnisses Es ist der ppid-Wert.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Ein Prozess enthält mehrere Attributparameter. Mithilfe des ps-Befehls können wir detaillierte Informationen über den Prozess im aktuellen System anzeigen, zum Beispiel:
[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 …省略部分输出…
Sie können sehen, dass jeder Prozess Attribute wie F, S, UID usw. enthält. PID usw. Diese Attributparameter bestimmen die Reihenfolge, in der Prozesse verarbeitet werden, die Ressourcen, auf die zugegriffen werden kann usw. und sind sowohl für Systemadministratoren als auch für Programmierer sehr wichtig.
Der folgende Artikel stellt Ihnen allgemeine Attributparameter wie UID, PID, PPID vor.
UID (Real User ID)
UID ist die Abkürzung für User Identification. Nachdem sich ein UID-Benutzer registriert hat, gibt Ihnen das System automatisch einen UID-Wert. Es bedeutet, diesem Benutzer eine Nummer zu geben.
Nur der Ersteller des Prozesses und der Root-Benutzer haben das Recht, den Prozess zu betreiben. Daher ist es unbedingt erforderlich, den Ersteller (d. h. den Eigentümer) eines Prozesses zu erfassen. Die UID eines Prozesses ist die Benutzer-ID-Nummer seines Erstellers, die zur Identifizierung des Eigentümers des Prozesses verwendet wird.
EUID (Effektive Benutzer-ID)
Zusätzlich zur UID speichert Linux auch eine „effektive Benutzer-ID-Nummer“ für den Prozess, genannt EUID. Diese spezielle UID-Nummer wird verwendet, um die Zugriffsrechte eines Prozesses auf bestimmte Ressourcen und Dateien zu bestimmen. In den meisten Fällen sind die UID und die EUID eines Prozesses identisch, mit Ausnahme des berühmten Programms setuid.
Was ist also ein Setuid-Programm? Wie bereits erwähnt, können Benutzer mit dem Befehl passwd ihr Anmeldekennwort ändern. Aber haben die Leser dieses Problem in Betracht gezogen? Das Passwort ist in der Datei /etc/shadow gespeichert. Diese Datei ist für normale Benutzer nicht lesbar.
Das ist das Schöne an setuid. Indem passwd während der Ausführungsphase die Berechtigungen des Dateieigentümers (d. h. Root) erteilt wird, kann der Benutzer vorübergehend die Schattendatei ändern (diese Fähigkeit ist natürlich begrenzt). . Daher ist passwd ein typisches Setuid-Programm, dessen UID die Benutzer-ID ist, die diesen Befehl gerade ausführt, und EUID die ID des Root-Benutzers (also 0).
PID (Prozess-ID-Nummer)
Das System weist jedem Benutzer eine ID-Nummer (UID) zu, die seine Identität identifiziert. Ebenso verfügt ein Prozess über eine solche ID-Nummer, die als PID (Process Identification) bezeichnet wird.
Sie müssen wissen, dass die Verwendung einer ID zur Bestimmung eines Prozesses sehr nützlich ist, da es für Computer immer bequemer ist, Zahlen zu erkennen, als eine Zeichenfolge zu erkennen. Linux muss diese Prozesse nicht verstehen, die sehr „bedeutungsvoll“ sind. zum Menschen.
Linux selbst verwendet nicht nur PID zur Identifizierung von Prozessen, es erfordert auch, dass Benutzer bei der Verwaltung von Prozessen entsprechende PID-Nummern angeben. Tatsächlich akzeptieren fast alle Prozessmanagement-Tools PID-Nummern anstelle von Prozessnamen.
PPID (PID des übergeordneten Prozesses)
Unter Linux müssen alle Prozesse von einem anderen Prozess erstellt werden (mit Ausnahme der Prozesse, die vom Kernel beim Systemstart autonom erstellt und installiert werden). Wenn ein Prozess erstellt wird, wird der Prozess, der ihn erstellt hat, als übergeordneter Prozess bezeichnet, und der Prozess wird als untergeordneter Prozess bezeichnet.
Der untergeordnete Prozess verwendet PPID, um anzugeben, wer sein „Vater“ ist. Es ist leicht zu verstehen, dass sich PPID auf die PID seines übergeordneten Prozesses bezieht.
Beachten Sie, dass in der obigen Beschreibung das Wort „erstellen“ häufig verwendet wird. Dies dient der Vereinfachung des Ausdrucks und des Verständnisses. Tatsächlich können Prozesse unter Linux nicht „aus dem Nichts“ erstellt werden stellt keinen Systemaufruf bereit, der es Anwendungen ermöglicht, einen Prozess zu „erstellen“. Anwendungen können nur neue Prozesse erzeugen, indem sie sich selbst klonen.
Erklärung:
PID und PPID sind beide Ganzzahlen ungleich Null.
PID ist eindeutig und eine PID identifiziert nur einen Prozess.
Ein weiterer neuer Prozess, der von einem Prozess erstellt wurde, wird als untergeordneter Prozess bezeichnet. Umgekehrt wird der Prozess, der den untergeordneten Prozess erstellt, als übergeordneter Prozess bezeichnet.
Für einen gewöhnlichen Benutzerprozess ist der übergeordnete Prozess die Shell, die ihn ausführt. Für Linux ist die Shell Bash.
Linux-Methode zum Anzeigen der PID und PPID des Prozesses
Beispiel: PID-Nummer des Nginx-Prozesses anzeigen, ps -ef | grep nginx
Nach der Ausführung können die PID- und PPID-Nummer des Prozesses angezeigt werden zurückgegeben werden
Der Befehl verwendet Erweiterungen, um einen Prozess zwangsweise zu beenden
Beispiel: Beenden Sie den Nginx-Prozess gewaltsam
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet Linux-PPID?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!