Linux / Befehl ps: Laufende Prozesse überprüfen

ps zeigt eine Liste der Prozesse zum Zeitpunkt der Ausführung. Es wird verwendet, um die PID, den Benutzer, den Status und den Befehl zu überprüfen, um zu untersuchen, ob ein bestimmter Dienst oder eine bestimmte Aufgabe tatsächlich ausgeführt wird.

ps gibt einen Schnappschuss zu einem einzelnen Zeitpunkt aus und endet dann. Wenn Sie Werte in Echtzeit sehen möchten, verwenden Sie top oder htop. Die Optionsnotation umfasst sowohl POSIX- als auch BSD-Stile, sodass die Bedeutung je nach Verwendung eines Bindestrichs unterschiedlich sein kann.

Grundlegende Syntax

ps [options]

Die installierte Implementierung und die Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung für das aktuelle System mit man ps.

Beispiele

Prozesse des aktuellen Terminals

Wenn es ohne Argumente ausgeführt wird, werden normalerweise nur Prozesse angezeigt, die mit dem aktuellen Terminal verbunden sind.

ps

Systemweite Prozesse

Es bietet einen breiten Überblick über Benutzer, PID, übergeordnete PID und Befehl.

ps -ef

Festlegen von Feldern für eine bestimmte PID

Wenn Sie nur die notwendigen Spalten angeben, ist es einfacher, Skripte zu lesen und Ergebnisse zu überprüfen.

ps -p 1234 -o pid,ppid,user,stat,cmd

So lesen Sie Prozessspalten

ps zeigt einen Schnappschuss der Prozesse zum Zeitpunkt der Ausführung. Durch die Angabe von Spalten können PID (Prozess-ID), PPID (übergeordnete PID), Status und Befehlsname klar unterschieden werden.

ps -o pid,ppid,stat,comm -p $$

Beispiellausgabe (Zahlen variieren bei jedem Ausführen):

    PID    PPID STAT COMMAND
   4321    4100 Ss   bash

$$ ist die PID der aktuellen Shell. Der erste Buchstabe von STAT gibt den Zustand an, zum Beispiel laufend oder wartend, und die folgenden Buchstaben geben zusätzliche Zustände an. Da Prozesse unmittelbar nach der Abfrage beendet werden können, stellen Sie sicher, die PID und den Befehl erneut zu überprüfen, bevor Sie einen Beendigungsbefehl ausführen.

Hauptoptionen und Format

Optionen/Format Beschreibung
-e Wählen Sie den gesamten Prozess aus.
-f Ausgabe im detaillierten Format.
-p PID Wählen Sie nur die angegebene Prozess-ID aus.
-o column_list Geben Sie die Felder und die Reihenfolge an, in der sie ausgegeben werden sollen.
aux Alle Benutzerprozesse und Ressourcendaten im BSD-Stil anzeigen.

Vorsichtsmaßnahmen bei der Verwendung

ps | grep name kann den grep-Prozess selbst in den Ergebnissen enthalten. pgrep ist praktisch, um PIDs nach Name zu suchen. Da Prozesse schnell erstellt und beendet werden können, stellen Sie sicher, dass Sie erneut prüfen, ob die PID noch derselbe Task ist, bevor Sie direkt nach der Ausgabe ein Signal senden.

Häufig gestellte Fragen

Was ist der Unterschied zwischen ps und top?

ps druckt einen Schnappschuss der Prozessliste zum Zeitpunkt seiner Ausführung und beendet sich dann. top aktualisiert den Bildschirm periodisch, sodass Sie Änderungen im Laufe der Zeit beobachten können.

Offizielle Dokumentation

Das genaue Verhalten der Optionen und Implementierungsunterschiede finden Sie in der offiziellen ps-Dokumentation.