Zum Inhalt springen

Ps: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(101 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''ps''' (processes) liefert eine Momentaufnahme der laufenden Prozesse
'''ps''' - (process status) - Staus von Prozesse anzeigen


* Wenn eine ständige Aktualisierung der Prozessliste gewünscht ist, so ist top zu verwenden.
== Beschreibung ==
* Mit pgrep lassen sich Prozesse gezielt über den Namen oder eines regulären Ausdrucks suchen
; Schnappschuss der aktuellen Prozesse darstellen
* pstree kann man alle laufenden Prozesse in Baumform anzeigen.
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


= {{anchor|RefHeadingToc39833062633561}} Nur bestimmte PID ausgeben =
; Typen von Optionen
ps -ef | grep '[j]ava'
# 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


Or if <tt>pgrep</tt> is available then better to use:
; Mischung von Optionstypen
pgrep -f java
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


You can pipe your output to awk to print just the PID. For example:
; Standardmäßig wählt ps
ps -ef | grep nginx | awk '{print $2}'
* alle Prozesse mit der effektiven Benutzerkennung (euid=EUID) des aktuellen Benutzers aus
9439
* die dem gleichen Terminal wie der Aufrufende zugeordnet sind


Works well, hoverver if you use the output as a variable, a | tr -d '\n' must be added at the end of the command.
; 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


Use this: <tt>ps -C <name> -o pid=</tt>Why is this voted down? Not only does it seem to work, but does so using the desired command ps, and no pipe filters. In my case, I couldn't use pipes (reasons..) so this was a lifesaver. You could spend a whole day reading the man page for
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


Maybe because it's not extremely portable, but then again the other solutions aren't either, and the original question was tagged with Redhat Linux. Just happened to see a commit by one of my engineers who needed to have a portable way to detect a specific java process on OSX, RHEL Linux and AIX, and this is what they came up with: <tt>ps -A -o pid,args | grep \[j]ava</tt>. This command ignore grep process, and just return PID:
Sie können dies in der Umgebungsvariable PS_FORMAT außer Kraft setzen
ps -ef | grep -v grep | grep java | awk '{print $2}'* Shorter: ps -ef | grep '[j]ava' | awk '{print $2}'
* 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.&nbsp;aufgefasst


* I use this to get the PID. Be careful when using the output as a variable, a <tt>| tr -d '\n'</tt> must be added at the end.
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


== {{anchor|RefHeadingToc47843062633561}} pidof ==
== Installation ==
pidof <process_name>
[[ps]] ist Teil des Pakets [[procps]]
it will return a list of pids matching the process name
[https://linux.die.net/man/8/pidof https://linux.die.net/man/8/pidof]
* works as long you don't have multiple instance (e.g. java)
adb shell procrank | grep TYPE_YOUR_PROCESS_NAME_INSTEAD | awk '{print $1}'
== {{anchor|RefHeadingToc42833062633561}} ps Ausgabeformatierung ==
ps -A -o pid
Output formatting of the command is the best option. The o option controls the output formatting. I listed some of arguments below below, see 'man ps' for the rest ( to use multiple it would be <tt>-o pid,cmd,flags</tt>).
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


== {{anchor|RefHeadingToc47863062633561}} Awk or Cut Would be Better to get Columns ==
== Aufruf ==
Generally you wouldn't want a regex for selecting the first column, you would want to pipe it to cut or awk to cut out the first column like:
<syntaxhighlight lang="bash" highlight="1">
ps ax | awk '{print $1}'
ps [Optionen]
</syntaxhighlight>


== {{anchor|RefHeadingToc42853062633561}} Regex is an Option, if not the best ==
=== Optionen ===
If you were to use regex, it could be something like:
{| class="wikitable sortable options gnu big"
ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}


$1 prints only what was matched in the parenthesis. ^ anchors the to the start of the line. Space asterisk means allow for optional space characters before the number. [0-9]+ means one or more digits. But I wouldn't recommend regex for this particular task, see why? :-)* thanks! but the regular expression would be a great addition, if anyone could contribute with a second answer
=== Einfache Prozessauswahl ===
* really, use awk.
{| class="wikitable options big"
* Pay attention, the regex would not match the initial spaces eventually being before small pids. Moreover a pid should be make of a digit at least, not zero (you should use + and not *)  
|-
* AlberT, oh good point, Didn't see that they were right justified. That is why I said regex is not the best I guess, will fix :-)  
! Option !! Beschreibung
* I can't argue how to use cut, by means of the initial spaces of course. Can you point out to me how to use cut? Just for the sake of curiosity :)  
|-
| 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
|-
| A  || wählt alle Prozesse aus (Gleichbedeutend mit -e)
|-
| -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
|-
| -d || wählt alle Prozesse außer Sitzungsleiter aus
|-
| --deselect || wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl)
* Gleichbedeutend mit -N
|-
| -e || wählt alle Prozesse aus (Gleichbedeutend mit -A)
|-
| 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 (Gleichbedeutend mit --deselect)
|-
| T || wählt alle Prozesse aus, welche diesem Terminal zugeordnet sind (Gleichbedeutend mit der Option t ohne Argumente)
|-
| r || schränkt die Auswahl nur auf laufende Prozesse ein
|-
| 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
|}


Use the '''-o''' switch to have a cust format output
=== Parameter ===
ps -o pid
=== Umgebungsvariablen ===
The bad way using sed, as you explicitly asked may be
=== Exit-Status ===
ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0  || Fehler
|}


'''ps -eo pid''' or '''ps -eo %p'''


-e Select all process -o Format pid=process id %p sameas pid
<noinclude>


[[category:Linux:Prozessmanagement]]
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
----
* [https://manpages.debian.org/trixie/procps/pgrep.1.de.html pgrep(1)]
* [https://manpages.debian.org/trixie/psmisc/pstree.1.de.html pstree(1)]
* [https://manpages.debian.org/trixie/procps/top.1.en.html top(1)]
* [https://manpages.debian.org/trixie/manpages-de-dev/strftime.3.de.html strftime(3)]
* [https://manpages.debian.org/trixie/manpages-de/proc.5.de.html proc(5)]
 
=== Dokumentation ===
; Man-Page
# [https://manpages.debian.org/stable/procps/ps.1.de.html ps(1)]
 
=== Links ===
==== Projekt ====
==== Weblinks ====
 
[[Kategorie:Linux/Prozess/Befehl]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Procps]]
 
{{DEFAULTSORT:ps}}
{{DISPLAYTITLE:ps}}
 
</noinclude>

Aktuelle Version vom 16. Oktober 2025, 08:25 Uhr

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
Typen von Optionen
  1. UNIX-Optionen, die gruppiert sein können und denen ein Bindestrich vorangestellt werden darf
  2. BSD-Optionen, die gruppiert sein können und denen kein Bindestrich vorangestellt werden muss
  3. Lange GNU-Optionen, denen zwei Bindestriche vorangestellt werden müssen
Mischung von Optionstypen

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

ps [Optionen]

Optionen

Unix GNU Parameter Beschreibung

Einfache Prozessauswahl

Option Beschreibung
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
A wählt alle Prozesse aus (Gleichbedeutend mit -e)
-a wählt alle Prozesse aus, außer sowohl Sitzungsleiter (siehe getsid(2)) als auch Prozesse, die keinem Terminal zugeordnet sind
-d wählt alle Prozesse außer Sitzungsleiter aus
--deselect wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl)
  • Gleichbedeutend mit -N
-e wählt alle Prozesse aus (Gleichbedeutend mit -A)
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 (Gleichbedeutend mit --deselect)
T wählt alle Prozesse aus, welche diesem Terminal zugeordnet sind (Gleichbedeutend mit der Option t ohne Argumente)
r schränkt die Auswahl nur auf laufende Prozesse ein
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

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler



Anhang

Siehe auch



Dokumentation

Man-Page
  1. ps(1)

Links

Projekt

Weblinks