Zum Inhalt springen

Pgrep: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „line>“ durch „line copy>“
 
(90 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''prep''' - Beschreibung
'''pgrep''' - Prozesse finden oder Signal auf Basis des Namens oder anderer Attribute senden oder auf Prozesse warten


== Beschreibung ==
== Beschreibung ==
== Installation ==
{| class="wikitable options big"
<syntaxhighlight lang="bash" highlight="1" line>
|-
! Befehl !! Beschreibung
|-
| [[#pgrep|pgrep]] || Durchsucht die Prozessliste und listet die Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen auf
|-
| [[#pkill|pkill]] || Sendet Signal (per Vorgabe SIGTERM) an passende Prozesse
|-
| [[#pidwait|pidwait]] || Wartet auf passende Prozesse
|}


== Aufruf ==
<syntaxhighlight lang="bash" highlight="1-3" line copy>
pgrep [Optionen] Muster
pkill [Optionen] Muster
pidwait [Optionen] Muster
</syntaxhighlight>
</syntaxhighlight>
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line>


</syntaxhighlight>
=== Optionen ===
=== Optionen ===
{| class="wikitable sortable options gnu"
{| class="wikitable sortable options gnu"
Zeile 15: Zeile 25:
! Unix !! GNU !! Parameter !! Beschreibung
! Unix !! GNU !! Parameter !! Beschreibung
|-
|-
| -1 || --single || || Exit as soon as the first advertisement is received (default)
| -Signal || --signal || Signal || definiert das Signal, das an jeden der passenden Prozesse gesendet werden soll
* Dafür kann entweder der numerische oder ein symbolischer Signalname verwendet werden
* Nur im pgrep- oder pidwait-Modus kann die lange Option verwendet werden
* Sie ist allerdings dann wirkungslos, wenn sie nicht zusammen mit --require-handler verwendet wird, um nur Prozesse anzuzeigen, für die bei einem bestimmten Signal ein Userspace-Signalhandler vorhanden ist
|-
| -c || --count || || unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden Prozesse aus
* Wenn keine Übereinstimmungen gefunden werden, liefert der Befehl einen von 0 verschiedenen Rückgabewert
* Beachten Sie, dass für pkill und pidwait die Anzahl der Anzahl der passenden Prozesse entspricht und nicht der Anzahl der Prozesse, an die erfolgreich ein Signal gesendet oder auf die gewartet wurde
|-
| -d || --delimiter || Trenner || legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende Zeichenkette fest
* Vorgabe ist ein Zeilenumbruch (gilt nur für pgrep)
|-
| -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
* Wenn -f gesetzt ist, wird die vollständige Befehlszeile verwendet
|-
| -g || --pgroup || Prozessgruppe, … || sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen aufgelistet sind
* Die Prozessgruppe 0 wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt
|-
| -G || --group || Gruppenkennung, … || berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet ist
* Hier kann entweder der numerische oder der symbolische Wert verwendet werden
|-
| -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
* Die Sitzungskennung 0 wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt
|-
| -t || --terminal || Terminal, … || sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet ist
* Der Terminalname sollte ohne das Präfix ''dev'' angegeben werden
|-
| -u || --euid || effektive_Benutzerkennung, … || sucht nur nach passenden Prozessen, deren effektive Benutzerkennung aufgelistet ist
* Sie können entweder numerische oder symbolische Werte verwenden
|-
| -U || --uid || Benutzerkennung, … || sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet ist
* Sie können entweder numerische oder symbolische Werte verwenden
|-
| -v || --inverse || || negiert die Anwendung der Suchkriterien
* Diese Option wird üblicherweise mit pgrep oder pidwait verwendet
* In pkill ist die Kurzoption deaktiviert, um die zufällige Anwendung dieser Option zu vermeiden
|-
| -w || --lightweight || || zeigt bei pgrep oder pidwait alle Thread-Kennungen anstelle der Prozess-Kennungen an
* In pkill ist diese Option deaktiviert
|-
| -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
* Diese Option ist eher für pkill oder pidwait als für pgrep sinnvoll
|-
| -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
* Dies kann beispielsweise in Verbindung mit sudo oder ähnlichen Werkzeugen nützlich sein
|-
| -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. See [[cgroups]](8)
|-
| || --ns || Prozesskennung || sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören
* Um Prozesse anderer Benutzer zu finden, sind Root-Rechte erforderlich
* In --nslist finden Sie Informationen, wie Sie die Übereinstimmungen im Zusammenhang mit Namensräumen begrenzen können
|-
| || --nslist || Name, … || sucht nur in den angegebenen Namensräumen nach Übereinstimmungen
* Verfügbare Namensräume: ipc, mnt, net, pid, user, uts
|-
| -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
* Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen
|-
| -V || --version || || zeigt Versionsinformationen an und beendet das Programm
|-
| -h || --help || || zeigt eine Hilfe an und beendet das Programm
|}
=== Argumente ===
{| class="wikitable options col1center"
! Argument !! Beschreibung
|-
| Muster || Erweiterter [[Reguläre Ausdrücke|reguläre Ausdruck]]
|}
|}
=== Parameter ===
 
=== Umgebungsvariablen ===
=== Exit-Status ===
=== Exit-Status ===
== Anwendung ==
{| class="wikitable options col1center"
<syntaxhighlight lang="bash" highlight="1" line>
! Wert !! Beschreibung
|-
| 0 || Einer oder mehrere Prozesse entsprechen dem Kriterium
* Für pkill und pidwait muss auch ein Signal erfolgreich an einen oder mehrere Prozesse gesendet oder auf sie gewartet worden sein
|-
| 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
|}


</syntaxhighlight>
=== Problembehebung ===
=== Problembehebung ===
== Konfiguration ==
; Anmerkung
=== Dateien ===
<blockquote>
<noinclude>
Der für die Suche verwendete Prozessname ist auf die 15 Zeichen in der Ausgabe von /proc/Prozesskennung/stat beschränkt
== Anhang ==
* Verwenden Sie die Option -f, um stattdessen Übereinstimmungen in der gesamten Befehlszeile (/proc/Prozesskennung/cmdline) zu suchen
=== Siehe auch ===
* Threads könnten nicht den gleichen Prozessnamen wie der Elternprozess haben, wohl aber die gleiche Befehlszeile
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====


===== Man-Page =====
Die laufenden pgrep-, pkill- oder pidwait-Prozesse werden niemals selbst als Treffer gemeldet
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====


{{DEFAULTSORT:prep}}
Die Option -O --older wird stillschweigend fehlschlagen, falls /proc mit der Option subset=pid eingehängt ist
{{DISPLAYTITLE:prep}}
* 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
</blockquote>


[[Kategorie:Linux/Prozesse]]
== pgrep ==
[[Kategorie:Procps]]
Durchsucht die gegenwärtig laufenden Prozesse und listet die Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen, in der Standardausgabe auf
[[Kategorie:Linux/Befehl]]
* Übereinstimmungen sind für alle Auswahlkriterien erforderlich


</noinclude>
; Beispiel 1
Prozesse, deren Name sshd lautet UND root gehören
<syntaxhighlight lang="bash" highlight="1" line copy>
pgrep -u root sshd
</syntaxhighlight>


= TMP =
; Beispiel 2
== BEZEICHNUNG ==
Prozesse, die entweder root ODER daemon gehören
pgrep, pkill, pidwait - Prozesse finden oder ein Signal auf Basis des Namens oder anderer Attribute senden oder auf
<syntaxhighlight lang="bash" highlight="1" line copy>
Prozesse warten
pgrep -u root,daemon
</syntaxhighlight>


== ÜBERSICHT ==
; Prozesskennung des named-Daemons suchen:
pgrep [Optionen] Muster
<syntaxhighlight lang="bash" highlight="1" line copy>
pkill [Optionen] Muster
pgrep -u root named
pidwait [Optionen] Muster
</syntaxhighlight>


== BESCHREIBUNG ==
; Detaillierte Informationen zu allen xterm-Prozessen ausgeben:
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. Beispielsweise listet
<syntaxhighlight lang="bash" highlight="1" line copy>
$ pgrep -u root sshd
ps -fp $(pgrep -d, -x xterm)
</syntaxhighlight>


nur die Prozesse auf, deren Name sshd lautet UND root gehören. Andererseits listet
; Den Nice-Wert für alle chrome-Prozesse erhöhen:
$ pgrep -u root,daemon
<syntaxhighlight lang="bash" highlight="1" line copy>
renice +4 $(pgrep chrome)
</syntaxhighlight>


jene Prozesse auf, die entweder root ODER daemon gehören.
== pkill ==
Sendet Signal (per Vorgabe SIGTERM) an passende Prozesse, anstatt diese in der Standardausgabe aufzulisten


pkill sendet das angegebene Signal (per Vorgabe SIGTERM) an jeden Prozess, anstatt diese in der Standardausgabe
== pidwait ==
aufzulisten.
Wartet auf passende Prozesse, anstatt diese in der Standardausgabe aufzulisten


pidwait wartet auf jeden Prozess, anstatt diesen in der Standardausgabe aufzulisten.
; syslog veranlassen, seine Konfigurationsdatei neu einzulesen:
<syntaxhighlight lang="bash" highlight="1" line copy>
pkill -HUP syslogd
</syntaxhighlight>


== OPTIONEN ==
-Signal
--signal Signal
definiert das Signal, das an jeden der passenden Prozesse gesendet werden soll. Dafür kann entweder der numerische oder ein symbolischer Signalname verwendet werden. Nur im pgrep- oder pidwait-Modus kann die lange
Option verwendet werden. Sie ist allerdings dann wirkungslos, wenn sie nicht zusammen mit --require-handler
verwendet wird, um nur Prozesse anzuzeigen, für die bei einem bestimmten Signal ein Userspace-Signalhandler
vorhanden ist.


-c, --count
<noinclude>
unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden Prozesse aus. Wenn keine Übereinstimmungen gefunden werden, liefert der Befehl einen von 0 verschiedenen Rückgabewert. Beachten Sie, dass
für pkill und pidwait die Anzahl der Anzahl der passenden Prozesse entspricht und nicht der Anzahl der Prozesse, an die erfolgreich ein Signal gesendet oder auf die gewartet wurde.


-d, --delimiter Trenner
== Installation ==
legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende Zeichenkette fest. Vorgabe ist
'''pgrep''' ist Teil von [[procps]]
ein Zeilenumbruch (gilt nur für pgrep).


-e, --echo
== Anhang ==
zeigt Name und Prozesskennung des zu killenden Prozesses an (nur für pkill).
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
* [[ps]](1)
* [[regex]](7)
* [[signal]](7)
* [[sigqueue]](3)
* [[killall]](1)
* [[skill]](1)
* [[kill]](1)
* [[kill]](2)
* [[cgroups]](8)


-f, --full
=== Dokumentation ===
Das Muster wird normalerweise nur auf den Prozessnamen angewendet. Wenn -f gesetzt ist, wird die vollständige Befehlszeile verwendet.


-g, --pgroup Prozessgruppe, …
; Man-Page
sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen aufgelistet sind. Die Prozessgruppe 0
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt.


-G, --group Gruppenkennung, …
;Info-Page
berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet ist. Hier kann entweder der numerische
oder der symbolische Wert verwendet werden.


-i, --ignore-case
=== Links ===
ignoriert Groß-/Kleinschreibung bei der Suche.
==== Projekt ====
==== Weblinks ====


-l, --list-name
{{DEFAULTSORT:pgrep}}
listet sowohl den Prozessnamen als auch die Prozesskennung auf (nur für pgrep).
{{DISPLAYTITLE:pgrep}}


-a, --list-full
[[Kategorie:Linux/Prozess/Befehl]]
listet sowohl die vollständige Befehlszeile als auch die Prozesskennung auf (nur für pgrep).
[[Kategorie:Procps]]
[[Kategorie:Linux/Befehl]]


-n, --newest
</noinclude>
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. Die Sitzungskennung 0 wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt.
 
-t, --terminal Terminal, …
sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet ist. Der Terminalname sollte ohne
das Präfix »dev« angegeben werden.
 
-u, --euid effektive_Benutzerkennung, …
sucht nur nach passenden Prozessen, deren effektive Benutzerkennung aufgelistet ist. Sie können entweder numerische oder symbolische Werte verwenden.
 
-U, --uid Benutzerkennung, …
sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet ist. Sie können entweder numerische oder symbolische Werte verwenden.
 
-v, --inverse
negiert die Anwendung der Suchkriterien. Diese Option wird üblicherweise mit pgrep oder pidwait verwendet.
In pkill ist die Kurzoption deaktiviert, um die zufällige Anwendung dieser Option zu vermeiden.
 
-w, --lightweight
zeigt bei pgrep oder pidwait alle Thread-Kennungen anstelle der Prozess-Kennungen an. In pkill ist diese Option deaktiviert.
 
-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. Diese Option ist eher für pkill oder pidwait als für pgrep sinnvoll.
 
-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. Dies kann beispielsweise in Verbindung mit sudo oder
ähnlichen Werkzeugen nützlich sein.
 
-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. See cgroups(8)
 
--ns Prozesskennung
sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören. Um Prozesse anderer Benutzer zu
finden, sind Root-Rechte erforderlich. In --nslist finden Sie Informationen, wie Sie die Übereinstimmungen
im Zusammenhang mit Namensräumen begrenzen können.
 
--nslist Name, …
sucht nur in den angegebenen Namensräumen nach Übereinstimmungen. Verfügbare Namensräume: ipc, mnt, net,
pid, user, uts.
 
-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. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen
Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen.
 
-V, --version
zeigt Versionsinformationen an und beendet das Programm.
 
-h, --help
zeigt eine Hilfe an und beendet das Programm.
 
== OPERANDEN ==
Muster gibt einen erweiterten regulären Ausdruck für die Übereinstimmungen von Prozessnamen oder Befehlszeilen an.
 
== BEISPIELE ==
Beispiel 1: Prozesskennung des named-Daemons suchen:
$ pgrep -u root named
 
Beispiel 2: syslog veranlassen, seine Konfigurationsdatei neu einzulesen:
$ pkill -HUP syslogd
 
Beispiel 3: Detaillierte Informationen zu allen xterm-Prozessen ausgeben:
$ ps -fp $(pgrep -d, -x xterm)
 
Beispiel 4: Den Nice-Wert für alle chrome-Prozesse erhöhen:
$ renice +4 $(pgrep chrome)
 
EXIT-STATUS
0 Einer oder mehrere Prozesse entsprechen dem Kriterium. Für pkill und pidwait muss auch ein Signal erfolgreich an einen oder mehrere Prozesse gesendet oder auf sie gewartet worden sein.
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.
 
== ANMERKUNGEN ==
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.
 
== FEHLER ==
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.
 
== SIEHE AUCH ==
# 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)

Aktuelle Version vom 11. Mai 2025, 13:43 Uhr

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
  • Dafür kann entweder der numerische oder ein symbolischer Signalname verwendet werden
  • Nur im pgrep- oder pidwait-Modus kann die lange Option verwendet werden
  • Sie ist allerdings dann wirkungslos, wenn sie nicht zusammen mit --require-handler verwendet wird, um nur Prozesse anzuzeigen, für die bei einem bestimmten Signal ein Userspace-Signalhandler vorhanden ist
-c --count unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden Prozesse aus
  • Wenn keine Übereinstimmungen gefunden werden, liefert der Befehl einen von 0 verschiedenen Rückgabewert
  • Beachten Sie, dass für pkill und pidwait die Anzahl der Anzahl der passenden Prozesse entspricht und nicht der Anzahl der Prozesse, an die erfolgreich ein Signal gesendet oder auf die gewartet wurde
-d --delimiter Trenner legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende Zeichenkette fest
  • Vorgabe ist ein Zeilenumbruch (gilt nur für pgrep)
-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
  • Wenn -f gesetzt ist, wird die vollständige Befehlszeile verwendet
-g --pgroup Prozessgruppe, … sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen aufgelistet sind
  • Die Prozessgruppe 0 wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt
-G --group Gruppenkennung, … berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet ist
  • Hier kann entweder der numerische oder der symbolische Wert verwendet werden
-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
  • Die Sitzungskennung 0 wird in die eigene Prozessgruppe von pgrep, pkill oder pidwait übersetzt
-t --terminal Terminal, … sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet ist
  • Der Terminalname sollte ohne das Präfix dev angegeben werden
-u --euid effektive_Benutzerkennung, … sucht nur nach passenden Prozessen, deren effektive Benutzerkennung aufgelistet ist
  • Sie können entweder numerische oder symbolische Werte verwenden
-U --uid Benutzerkennung, … sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet ist
  • Sie können entweder numerische oder symbolische Werte verwenden
-v --inverse negiert die Anwendung der Suchkriterien
  • Diese Option wird üblicherweise mit pgrep oder pidwait verwendet
  • In pkill ist die Kurzoption deaktiviert, um die zufällige Anwendung dieser Option zu vermeiden
-w --lightweight zeigt bei pgrep oder pidwait alle Thread-Kennungen anstelle der Prozess-Kennungen an
  • In pkill ist diese Option deaktiviert
-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
  • Diese Option ist eher für pkill oder pidwait als für pgrep sinnvoll
-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
  • Dies kann beispielsweise in Verbindung mit sudo oder ähnlichen Werkzeugen nützlich sein
-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. See cgroups(8)
--ns Prozesskennung sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören
  • Um Prozesse anderer Benutzer zu finden, sind Root-Rechte erforderlich
  • In --nslist finden Sie Informationen, wie Sie die Übereinstimmungen im Zusammenhang mit Namensräumen begrenzen können
--nslist Name, … sucht nur in den angegebenen Namensräumen nach Übereinstimmungen
  • Verfügbare Namensräume: ipc, mnt, net, pid, user, uts
-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
  • Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen
-V --version zeigt Versionsinformationen an und beendet das Programm
-h --help zeigt eine Hilfe an und beendet das Programm

Argumente

Argument Beschreibung
Muster Erweiterter reguläre Ausdruck

Exit-Status

Wert Beschreibung
0 Einer oder mehrere Prozesse entsprechen dem Kriterium
  • Für pkill und pidwait muss auch ein Signal erfolgreich an einen oder mehrere Prozesse gesendet oder auf sie gewartet worden sein
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

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

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



Installation

pgrep ist Teil von procps

Anhang

Siehe auch

Dokumentation

Man-Page
  1. prep(1)
Info-Page

Links

Projekt

Weblinks