pgrep
pgrep - pgrep, pkill, pidwait - Prozesse finden oder ein Signal auf Basis des Namens oder anderer Attribute senden oder auf Prozesse warten
Beschreibung
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
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
Installation
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
- OPERANDEN
Muster gibt einen erweiterten regulären Ausdruck für die Übereinstimmungen von Prozessnamen oder Befehlszeilen an
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
- Prozesskennung des named-Daemons suchen
pgrep -u root named
- syslog veranlassen, seine Konfigurationsdatei neu einzulesen
pkill -HUP syslogd
- 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)
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
Anhang
Siehe auch
Dokumentation
- Man-Page
- PGREP(1) Dienstprogramme für Benutzer PGREP(1)
- ps(1)
- regex(7)
- signal(7)
- sigqueue(3)
- killall(1)
- skill(1)
- kill(1)
- kill(2)
- cgroups(8)
- Info-Page
Links
Projekt
Weblinks