Linux / Befehl pgrep: Prozess-IDs nach Name oder Kriterien finden
pgrep findet die Prozess-ID laufender Prozesse basierend auf Bedingungen wie Prozessname und Benutzer. Es ist ein Befehl, um die Ziel-PID zu überprüfen und beendet den Prozess nicht von selbst.
Das grundlegende Muster wird mit einem regulären Ausdruck auf den Prozessnamen angewendet. Verwenden Sie -x, wenn der gesamte Name genau übereinstimmen muss, und -f, um die vollständige Befehlszeile zu überprüfen. -f kann breiter übereinstimmen, stellen Sie also sicher, dass Sie die Ergebnisse überprüfen.
Grundlegende Syntax
pgrep [option] pattern
Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung auf dem aktuellen System mit man pgrep.
Beispiele
PID nach Namen suchen
Gibt die passenden PIDs zeilenweise aus.
pgrep sshd
Namen und PID zusammen anzeigen
Zeigt an, welche Aufgaben ausgewählt sind, um Fehler zu reduzieren.
pgrep -a sshd
Exakte Namensbeschränkung mit Benutzer
Den Bereich eingrenzen, um das Auswählen von Prozessen mit demselben Namen anderer Benutzer zu vermeiden.
pgrep -u alice -x python3
Grund, warum die Suchergebnisse als PID angezeigt werden
pgrep gibt die PID von Prozessen aus, die den Bedingungen entsprechen. Die Verwendung von -a zeigt sowohl die PID als auch die vollständige Befehlszeile an, was die Überprüfung erleichtert.
pgrep -a sshd
Beispielausgabe (auf einem System, auf dem der Prozess läuft):
1234 /usr/sbin/sshd -D
Wenn keine Zeilen erscheinen, gibt es möglicherweise keinen passenden Prozess oder es könnten Berechtigungs- oder Bedingungsprobleme vorliegen. Standardmäßig zielt die Suche auf den Prozessnamen ab, und um die vollständige Befehlszeile zu durchsuchen, verwenden Sie -f. Breite Muster können unerwartete Prozesse einbeziehen, daher sollten die Ergebnisse vor der Weitergabe an Beendigungskommandos überprüft werden.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
-a |
Zeigen Sie die PID zusammen mit der vollständigen Befehlszeile an. |
-x |
Der gesamte Prozessname muss dem Muster entsprechen. |
-f |
Überprüfen Sie die vollständige Befehlszeile anstelle des Prozessnamens. |
-u user |
Begrenzen Sie den Geltungsbereich auf effektive Benutzer-IDs. |
-n / -o |
Wählen Sie entweder die neueste oder die älteste Übereinstimmung aus. |
Vorsichtsmaßnahmen bei der Verwendung
Der Prozessname kann von der sichtbaren Befehlszeile abweichen, und lange Namen können von den internen Begrenzungen der Implementierung betroffen sein. -f kann mehr Jobs finden als erwartet. Bevor die gefundene PID an kill weitergegeben wird, überprüfe sie noch einmal mit ps -p PID -o cmd= oder Ähnlichem.
Häufig gestellte Fragen
Ist es ein Fehler, wenn es keine Ergebnisse von pgrep gibt?
Es bedeutet normalerweise, dass keine Prozesse der Bedingung entsprechen und der Exit-Status möglicherweise nicht 0 ist. Um den Dienststatus zu bestätigen, überprüfen Sie auch die Ausführungszeit und die Suchbedingungen.
Offizielle Dokumentation
Sie können das genaue Verhalten der Optionen und Implementierungsunterschiede in der offiziellen pgrep-Dokumentation nachlesen.




