[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal:Einen Terminal öffnen:] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Oftmals möchte man nur wissen, ob ein bestimmtes Programm läuft oder welche Prozessnummer (PID) es hat. Dafür ist '''pgrep''' der ideale Helfer. Kombinationen mit mehreren Pipes und [:grep:] oder gar [:awk:] sind dazu nicht nötig. Allerdings gibt es ein paar Feinheiten zu beachten, damit '''pgrep''' auch die gewünschten Ergebnisse liefert. = Installation = Das Programm ist im Paket * '''procps''' enthalten, welches bei jeder Ubuntuinstallation automatisch mit installiert wird. = Beschreibung = pgrep durchsucht die Liste der laufenden Programme und gibt deren PID, evtl. auch den gesamten Namen, auf `stdout` aus, dabei müssen alle Auswahlkriterien zutreffen. Der Suchbegriff (Programmname) kann dabei auch als Regulärer Ausdruck angegeben werden. pgrep und [:pkill:] nutzen dabei die gleiche Syntax. = Aufruf = Syntaxaufruf für die Verwendung in der Shell [1]: {{{#!vorlage Befehl pgrep [-cflvx] [-d delim] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...] [-t term,...] [Suchbegriff] }}} Wenn `pgrep` ohne die Option `-f` aufgerufen wird, muss der gesuchte Prozessnamen auf 15 Zeichen gekürzt werden, da die Suche sonst leer bleibt. Wenn `pgrep` ohne die Option `-x` aufgerufen wird werden alle Prozesse gefunden, die den Suchbegriff im Prozessnamen beinhalten. = Optionen = {{{#!vorlage Tabelle <-2 rowclass="titel"> Eine Auswahl an Optionen und Ihre Bedeutung +++ `-c` Statt der PIDs wird die Anzahl der laufenden Prozesse ausgegeben +++ `-d` delim Standardmäßig gibt `pgrep` je Zeile eine PID aus, durch Angabe eines Delimiters kann dies geändert werden. +++ `-f` Durch die Angabe von `-f` werden nicht nur die Prozessnamen sondern die gesamte Kommandozeile durchsucht, also auch evtl. vorhandene Parameter. +++ `-l` Die Option `-l` bewirkt, dass neben der PID auch der Prozessname aufgelistet wird. +++ `-v` Negiert den Suchbegriff. +++ `-x` Findet nur Prozesse mit genau diesem `Suchbegriff`. +++ `-n` Selektiert nur den neuesten (zuletzt gestarteten) Prozess. +++ `-o` Selektiert nur den ältesten (zuerst gestarteten) Prozess. +++ `-P pid,...` Findet nur Prozesse deren Elternprozess die PID `pid` haben. Eine Angabe von `-P1` findet die Prozesse die vom Elternprozess 1, also `init` gestartet wurden. +++ `-U uid,...` Findet nur Prozesse der realen User-ID, dabei kann der numerische (z.B 1000) oder auch der symbolische Wert (z.B. username) genutzt werden. }}} Für weitere Informationen siehe [:man:]: `pgrep`. = Beispiele = Listen der PID aller Prozesse die im Namen `ssh` beinhalten {{{#!vorlage Befehl pgrep ssh }}} Listen der PID und des Programmnamens die im Namen `ssh` beinhalten {{{#!vorlage Befehl pgrep -l ssh }}} Anzahl aller Prozesse die im Namen `ssh` beinhalten {{{#!vorlage Befehl pgrep -c ssh }}} Listen aller Prozesse die im Namen `ssh` beinhalten und vom Elternprozess 1 (init) gestarted wurden. {{{#!vorlage Befehl pgrep -P1 ssh }}} Listen aller Prozesse die genau den Namen `sshd` haben. {{{#!vorlage Befehl pgrep -x sshd }}} Listen aller Prozesse, PID und Namen, die irgendwo den Suchbegriff `start` enthalten {{{#!vorlage Befehl pgrep -fl start }}} = Links = * [http://linux.die.net/man/1/pgrep Manpage auf linux.die.net] # tag: Shell