Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist
Unter Linux können Sie den Kill-Befehl verwenden, um anhand der PID zu überprüfen, ob der Prozess vorhanden ist. „Kill -0“ sendet kein Signal an den Prozess, sondern führt eine Fehlerprüfung durch ist 0. Wenn der Prozess nicht existiert, ist das zurückgegebene Ergebnis 1 und die Syntax lautet „kill -0 pid“.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Angenommen, wir möchten nun überwachen, ob ein Prozess aktiv ist, und ihn jede Minute überprüfen. Mit der oben genannten Methode müssen wir den Befehl ps jede Minute ausführen und Folgendes tun: grep reguläre Suche. Dieser Overhead scheint auf dem Server nichts zu bedeuten, aber was ist, wenn wir Dutzende oder Hunderte solcher Prozesse gleichzeitig auf demselben Knoten überwachen möchten? Daher müssen wir einige bessere Methoden aus Leistungssicht untersuchen.
Daemon-Prozesse verfügen normalerweise über eigene PID- oder Sperrdateien. Wir können überprüfen, ob diese Dateien vorhanden sind, um festzustellen, ob der Prozess vorhanden ist. Unter bestimmten ungewöhnlichen Umständen existiert der Prozess, in dem die PID-Datei vorhanden ist, jedoch nicht. Daher können Sie sich nicht auf die PID-Datei des Prozesses verlassen, um festzustellen, ob der Prozess aktiv ist.
Eine zuverlässige Möglichkeit ist die Verwendung von „kill -0 pid“. kill -0 sendet kein Signal an den Prozess, führt aber eine Fehlerprüfung durch. Der Befehl gibt 0 zurück, wenn der Prozess existiert, und 1, wenn er nicht existiert.
Diese Methode kann jedoch nur von normalen Benutzern verwendet werden, um ihre eigenen Prozesse zu überprüfen, da das Senden von Signalen an die Prozesse anderer Benutzer aufgrund fehlender Berechtigungen zu einem Fehler führt und der Rückgabewert ebenfalls 1 ist.
[sw@gentoo ~]$ kill 2993 -bash: kill: (2993) - Operation not permitted [sw@gentoo ~]$ echo $? 1 [sw@gentoo ~]$
Wenn Sie den Kill-Befehl als privilegierter Benutzer ausführen, gibt es natürlich kein Berechtigungsproblem.
Andererseits wissen wir, dass der Kernel die im System ausgeführten Prozessinformationen über das virtuelle Dateisystem /proc exportiert. Daher können wir die Erkennung der Existenz des Prozesses in die Erkennung der Existenz des Verzeichnisses /proc/
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!