Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist

So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist

WBOY
WBOYOriginal
2022-04-07 12:37:416820Durchsuche

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“.

So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist.

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.

So verwenden Sie pid, um zu überprüfen, ob ein Prozess unter Linux vorhanden ist

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/ umwandeln, was viel einfacher ist.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn