|
|
Zeile 49: |
Zeile 49: |
| | >0 || Fehler | | | >0 || Fehler |
| |} | | |} |
|
| |
| == Anwendung ==
| |
| === Bestimmte PID ausgeben ===
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -ef | grep '[j]ava'
| |
| </syntaxhighlight>
| |
|
| |
| Oder wenn pgrep verfügbar ist, ist Folgendes zu verwenden:
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| pgrep -f java
| |
| </syntaxhighlight>
| |
|
| |
| Man kann die Ausgabe an awk weiterleiten, um nur die PID zu drucken. Zum Beispiel:
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -ef | grep nginx | awk '{print $2}'
| |
| </syntaxhighlight>
| |
|
| |
| Funktioniert, wenn man die Ausgabe als Variable verwendet a | tr -d '\ n' muss am Ende des Befehls hinzugefügt werden.
| |
|
| |
| Frage wurde mit Redhat Linux getaggt. Zum Erkennen eines bestimmten Java-Prozesses unter OSX, RHEL Linux und AIX ist ps -A -o pid , args | grep \ [j] ava . Dieser Befehl ignoriert den grep-Prozess und gibt einfach die PID zurück:
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -ef | grep -v grep | grep java | awk '{print $2}'* Kürzer: ps -ef | grep '[j]ava' | awk '{print $2}'
| |
| </syntaxhighlight>
| |
|
| |
| Man benutzt dies, um die PID zu erhalten. '''Achtung:''' wenn man die Ausgabe als Variable a | verwendet, muss am Ende tr -d '\ n' hinzugefügt werden.
| |
|
| |
| === pidof ===
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| sudo pidof <process_name>
| |
| </syntaxhighlight>
| |
|
| |
| Es wird eine Liste von Pids zurückgegeben, die dem Prozessnamen entsprechen
| |
| [https://linux.die.net/man/8/pidof https://linux.die.net/man/8/pidof]
| |
| * funktioniert solange man nicht über mehrere Instanzen verfügt (beispielsweise Java)
| |
| adb shell procrank | grep TYPE_YOUR_PROCESS_NAME_INSTEAD | awk '{print $1}'
| |
|
| |
| === Ausgabe ===
| |
| Ausgabeformatierung
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -A -o pid
| |
| </syntaxhighlight>
| |
|
| |
| Die Ausgabeformatierung des Befehls ist die beste Option. Die Option -o steuert die Ausgabeformatierung. Unten sind einige Argumente aufgelistet, siehe 'man ps' für den Rest (um mehrere zu verwenden, wäre es ''-o pid, cmd, flags'').
| |
|
| |
| KEY LONG DESCRIPTION
| |
| c cmd simple name of executable
| |
| C pcpu cpu utilization
| |
| f flags flags as in long format F field
| |
| g pgrp process group ID
| |
| G tpgid controlling tty process group ID
| |
| j cutime cumulative user time
| |
| J cstime cumulative system time
| |
| k utime user time
| |
| o session session ID
| |
| p pid process ID
| |
|
| |
| === [[awk]] und [[cut]] ===
| |
| Im Allgemeinen möchte man keinen regulären Ausdruck für die Auswahl der ersten Spalte, sondern möchte ihn zum Ausschneiden leiten oder awk zum Ausschneiden der ersten Spalte wie folgt:
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps ax | awk '{print $1}'
| |
| </syntaxhighlight>
| |
|
| |
| === Regular expression ===
| |
| Wenn man [[Regular expression]] verwendet, könnte dies so aussehen
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'
| |
| </syntaxhighlight>
| |
| * $1 druckt nur das, was in der Klammer übereinstimmt
| |
| * ^ verankert das am Zeilenanfang
| |
| * Leerzeichen bedeutet, dass optionale Leerzeichen vor der Nummer zulässig sind
| |
| * [0-9] + bedeutet eine oder mehrere Ziffern
| |
|
| |
| ; Achtung
| |
| * Der reguläre Ausdruck darf nicht mit den anfänglichen Leerzeichen vor kleinen Pids übereinstimmen
| |
| * Außerdem sollte eine PID mindestens aus einer Ziffer bestehen, nicht aus Null (Achtung: + und nicht * verwenden)
| |
|
| |
| Verwenden Sie den Schalter '' '-o' '', um eine Ausgabe im Cust-Format zu erhalten
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -o pid
| |
| </syntaxhighlight>
| |
|
| |
| Der schlechte Weg mit sed kann sein
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'
| |
| </syntaxhighlight>
| |
|
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| ''ps -eo pid''' oder '''ps -eo %p''
| |
| </syntaxhighlight>
| |
|
| |
| -e :Alle Prozesse auswählen, -o :Format, pid = Prozess-ID% p sameas pid
| |
|
| |
| === Beispiele ===
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Alle Alle Prozesse im System in der Standard-Syntax anzeigen:]
| |
|
| |
| ps -e ps -ef ps -eF ps -ely
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Alle~2 Alle Prozess im System in der BSD-Syntax anzeigen:]
| |
|
| |
| ps ax ps axu
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Einen Einen Prozessbaum ausgeben:]
| |
|
| |
| ps -ejH ps axjf
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Informationen Informationen zu Threads erhalten:]
| |
|
| |
| ps -eLf ps axms
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Sicherheitsinformationen Sicherheitsinformationen erhalten:]
| |
|
| |
| ps -eo euser,ruser,suser,fuser,f,comm,label ps axZ ps -eM
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Alle~3 Alle Prozesse im System, die mit Root-Rechten laufen (reale & effektive Kennung), in einem benutzerdefinierten Format anzeigen:]
| |
|
| |
| ps -U root -u root u
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Alle~4 Alle Prozesse in einem benutzerdefinierten Format anzeigen:]
| |
|
| |
| ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Nur Nur die Prozesskennungen (PIDs) von syslogd ausgeben:]
| |
|
| |
| ps -C syslogd -o pid==
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#Nur~2 Nur den Namen des Prozesses mit der Kennung 42 ausgeben:]
| |
|
| |
| ps -q 42 -o comm==
| |
|
| |
| === Einfache Prozessauswahl ===
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#a a]
| |
|
| |
| hebt die Einschränkung »nur Sie selbst« des BSD-Stils auf, die für die Gruppe aller Prozesse gilt, wenn einige BSD-artige Optionen (ohne »-«) verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung von ps BSD-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option ps veranlasst, alle Prozesse mit einem Terminal (TTY) aufzulisten, oder alle Prozesse aufzulisten, wenn dies zusammen mit der Option x verwendet wird.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#A -A]
| |
|
| |
| wählt alle Prozesse aus. Gleichbedeutend mit -e.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#a~2 -a]
| |
|
| |
| wählt alle Prozesse aus, außer sowohl Sitzungsleiter (siehe [https://manpages.debian.org/trixie/manpages-de-dev/getsid.2.de.html getsid(2)]) als auch Prozesse, die keinem Terminal zugeordnet sind.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#d -d]
| |
|
| |
| wählt alle Prozesse außer Sitzungsleiter aus.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#deselect --deselect]
| |
|
| |
| wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl). Gleichbedeutend mit -N.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#e -e]
| |
|
| |
| wählt alle Prozesse aus. Gleichbedeutend mit -A.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#g g]
| |
|
| |
| wählt wirklich alle, selbst die Sitzungsleiter. Dieser Schalter ist veraltet und könnte in zukünftigen Veröffentlichungen nicht mehr zur Verfügung stehen. Es wird normalerweise vom Schalter a impliziert und ist nur nützlich, wenn es in einer SunOs-Prozessausführungsumgebung ausgeführt wird.
| |
|
| |
| -N
| |
|
| |
| wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl). Gleichbedeutend mit --deselect.
| |
|
| |
| T
| |
|
| |
| wählt alle Prozesse aus, welche diesem Terminal zugeordnet sind. Gleichbedeutend mit der Option t ohne Argumente.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#r r]
| |
|
| |
| schränkt die Auswahl nur auf laufende Prozesse ein.
| |
|
| |
| [https://manpages.debian.org/trixie/procps/ps.1.de.html#x x]
| |
|
| |
| hebt die Einschränkung »muss ein TTY haben« des BSD-Stils auf, die für die Gruppe aller Prozesse gilt, wenn einige BSD-artige Optionen (ohne »-«) verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung von ps BSD-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option ps veranlasst, alle Prozesse aufzulisten, deren Besitzer Sie selbst sind (gleiche EUID wie ps), oder alle Prozesse aufzulisten, wenn dies zusammen mit der Option a verwendet wird.
| |
|
| |
|
| == Konfiguration == | | == Konfiguration == |
ps - (process status) - Staus von Prozesse anzeigen
Beschreibung
- Schnappschuss der aktuellen Prozesse darstellen
ps zeigt Informationen zu einer Auswahl aktiver Prozesse an. Falls Sie eine wiederholte Aktualisierung der Auswahl und der angezeigten Informationen benötigen, verwenden Sie stattdessen top.
Diese Version von ps akzeptiert verschiedene Arten von Optionen:
- UNIX-Optionen, die gruppiert sein können und denen ein Bindestrich vorangestellt werden darf.
- BSD-Optionen, die gruppiert sein können und denen kein Bindestrich vorangestellt werden muss.
- Lange GNU-Optionen, denen zwei Bindestriche vorangestellt werden müssen.
Optionen verschiedener Typen können beliebig gemischt werden, was aber auch Konflikte hervorrufen kann. Es gibt einige gleichbedeutende Optionen, die funktionell identisch sind. Das beruht auf den zahlreichen Standards und Implementationen von ps, zu denen das vorliegende ps kompatibel ist.
Standardmäßig wählt ps alle Prozesse mit der effektiven Benutzerkennung (euid=EUID) des aktuellen Benutzers aus, die dem gleichen Terminal wie der Aufrufende zugeordnet sind. Es zeigt die Prozesskennung (pid=PID), das dem Prozess zugeordnete Terminal (tname=TTY), die kumulierte CPU-Zeit (time=TIME) im Format [TT-]hh:mm:ss sowie den Namen des ausführbaren Programms an. Die Ausgabe wird standardmäßig nicht sortiert.
Durch die Verwendung von Optionen im BSD-Stil wird der Prozessstatus (stat=STATUS) zur standardmäßigen Anzeige hinzugefügt und die Befehlsargumente (args=BEFEHL) anstelle des Namens der ausführbaren Datei angezeigt. Sie können dies in der Umgebungsvariable PS_FORMAT außer Kraft setzen. Durch die Verwendung von Optionen im BSD-Stil zeigt die Prozessauswahl außerdem Prozesse auf anderen Terminals (TTYs) an, deren Besitzer Sie selbst sind; alternativ könnte dies als Setzen der Auswahl auf alle Prozesse beschrieben werden, aus denen aber Prozesse herausgefiltert werden, die anderen Benutzern gehören oder nicht auf einem Terminal laufen. Diese Effekte werden nicht berücksichtigt, wenn Optionen nachfolgend als »gleichbedeutend« beschrieben werden, so wird -M als gleichbedeutend mit Z usw. aufgefasst.
Außer in den nachfolgend beschriebenen Ausnahmen sind Optionen zur Prozessauswahl additiv. Die standardmäßige Auswahl wird verworfen und dann werden die ausgewählten Prozesse zur Gruppe der anzuzeigenden Prozesse hinzugefügt. Ein Prozess wird also dann angezeigt, wenn er irgendeinem der angegebenen Auswahlkriterien entspricht.
Installation
ps ist Teil des Pakets procps
Aufruf
Optionen
Unix |
GNU |
Parameter |
Beschreibung
|
|
|
|
|
Parameter
Umgebungsvariablen
Exit-Status
Wert |
Beschreibung
|
0 |
Erfolg
|
>0 |
Fehler
|
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
- Man-Page
- ps(1)
Links
Projekt
Weblinks