pgrep
pgrep - Prozesse finden oder Signal auf Basis des Namens oder anderer Attribute senden oder auf Prozesse warten
Beschreibung
Befehl | Beschreibung |
---|---|
pgrep | Durchsucht die Prozessliste und listet die Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen auf |
pkill | Sendet Signal (per Vorgabe SIGTERM) an passende Prozesse |
pidwait | Wartet auf passende Prozesse |
Aufruf
pgrep [Optionen] Muster
pkill [Optionen] Muster
pidwait [Optionen] Muster
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-Signal | --signal | Signal | definiert das Signal, das an jeden der passenden Prozesse gesendet werden soll
|
-c | --count | unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden Prozesse aus
| |
-d | --delimiter | Trenner | legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende Zeichenkette fest
|
-e | --echo | zeigt Name und Prozesskennung des zu killenden Prozesses an (nur für pkill) | |
-f | --full | Das Muster wird normalerweise nur auf den Prozessnamen angewendet
| |
-g | --pgroup | Prozessgruppe, … | sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen aufgelistet sind
|
-G | --group | Gruppenkennung, … | berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet ist
|
-i | --ignore | -case ignoriert Groß-/Kleinschreibung bei der Suche | |
-l | --list | -name listet sowohl den Prozessnamen als auch die Prozesskennung auf (nur für pgrep) | |
-a | --list | -full listet sowohl die vollständige Befehlszeile als auch die Prozesskennung auf (nur für pgrep) | |
-n | --newest | wählt nur den neuesten (zuletzt gestarteten) aus den passenden Prozessen aus | |
-o | --oldest | wählt nur den ältesten (zuerst gestarteten) aus den passenden Prozessen aus | |
-O | --older | Sekunden | wählt Prozesse aus, die älter als die angegebene Anzahl Sekunden sind |
-P | --parent | Eltern-Prozesskennung, … | sucht nur nach Prozessen, von denen die Kennung des übergeordneten Prozesses aufgelistet ist |
-s | --session | Sitzungskennung, … | sucht nur nach passenden Prozessen, die in den Prozess-Sitzungskennungen aufgelistet ist
|
-t | --terminal | Terminal, … | sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet ist
|
-u | --euid | effektive_Benutzerkennung, … | sucht nur nach passenden Prozessen, deren effektive Benutzerkennung aufgelistet ist
|
-U | --uid | Benutzerkennung, … | sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet ist
|
-v | --inverse | negiert die Anwendung der Suchkriterien
| |
-w | --lightweight | zeigt bei pgrep oder pidwait alle Thread-Kennungen anstelle der Prozess-Kennungen an
| |
-x | --exact | sucht nur nach passenden Prozessen, deren Namen (oder Befehlszeilen, falls -f angegeben ist) exakt dem Muster entsprechen | |
-F | --pidfile | Datei | liest die Prozesskennungen aus einer Datei
|
-L | --logpidfile | schlägt fehl, wenn die PID-Datei (siehe -F) nicht gesperrt ist | |
-r | --runstates | D,R,S,Z, … | sucht nur nach Prozessen, die diesem Prozessstatus entsprechen |
-A | --ignore | -ancestors ignoriert alle Vorgänger von pgrep, pkill oder pidwait
| |
-H | --require | -handler sucht nur nach Prozessen, für die für das zu sendende Signal ein Userspace-Signalhandler vorhanden ist | |
--cgroup | Name,… | Match on provided control group (cgroup) v2 name
| |
--ns | Prozesskennung | sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören
| |
--nslist | Name, … | sucht nur in den angegebenen Namensräumen nach Übereinstimmungen
| |
-q | --queue | Wert | verwendet sigqueue(3) anstatt kill(2) und das Wert-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird
|
-V | --version | zeigt Versionsinformationen an und beendet das Programm | |
-h | --help | zeigt eine Hilfe an und beendet das Programm |
Argumente
Argument | Beschreibung |
---|---|
Muster | Erweiterte reguläre Ausdruck |
Exit-Status
Wert | Beschreibung |
---|---|
0 | Einer oder mehrere Prozesse entsprechen dem Kriterium
|
1 | Es wurden keine passenden Prozesse gefunden oder an keine von ihnen konnte ein Signal gesendet werden |
2 | Syntaxfehler in der Befehlszeile |
3 | Schwerwiegender Fehler: Speicher ausgeschöpft usw |
Anwendung
pgrep
Durchsucht die gegenwärtig laufenden Prozesse und listet die Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen, in der Standardausgabe auf
- Übereinstimmungen sind für alle Auswahlkriterien erforderlich
- Beispiel 1
Prozesse, deren Name sshd lautet UND root gehören
pgrep -u root sshd
- Beispiel 2
Prozesse, die entweder root ODER daemon gehören
pgrep -u root,daemon
- Prozesskennung des named-Daemons suchen
pgrep -u root named
- Detaillierte Informationen zu allen xterm-Prozessen ausgeben
ps -fp $(pgrep -d, -x xterm)
- Den Nice-Wert für alle chrome-Prozesse erhöhen
renice +4 $(pgrep chrome)
pkill
Sendet Signal (per Vorgabe SIGTERM) an passende Prozesse, anstatt diese in der Standardausgabe aufzulisten
pidwait
Wartet auf passende Prozesse, anstatt diese in der Standardausgabe aufzulisten
- syslog veranlassen, seine Konfigurationsdatei neu einzulesen
pkill -HUP syslogd
Problembehebung
- Anmerkung
Der für die Suche verwendete Prozessname ist auf die 15 Zeichen in der Ausgabe von /proc/Prozesskennung/stat beschränkt
- Verwenden Sie die Option -f, um stattdessen Übereinstimmungen in der gesamten Befehlszeile (/proc/Prozesskennung/cmdline) zu suchen
- Threads könnten nicht den gleichen Prozessnamen wie der Elternprozess haben, wohl aber die gleiche Befehlszeile
Die laufenden pgrep-, pkill- oder pidwait-Prozesse werden niemals selbst als Treffer gemeldet
Die Option -O --older wird stillschweigend fehlschlagen, falls /proc mit der Option subset=pid eingehängt ist
- Die Optionen -n, -o und -v können nicht kombiniert werden
- Bitte informieren Sie die Entwickler, falls das für Ihre Zwecke nötig sein sollte
- Bereits beendete Prozesse werden gemeldet
- pidwait erfordert den Systemaufruf pidfd_open(2), der zuerst in Linux 5.3 erschien
Installation
pgrep ist Teil von procps
Anhang
Siehe auch
Dokumentation
- Man-Page
- Info-Page
Links
Projekt
Weblinks