Das ps ist ein eingebauter Befehl, der in Unix/Linux-Betriebssystemen verwendet wird, um die aktuell laufenden Prozesse aufzulisten. Es zeigt einen statischen Schnappschuss mit Informationen über die Prozesse an, während top, htop und looks sich wiederholende Aktualisierungen anzeigen.
Der Befehl Ps enthält viele Optionen zum Bearbeiten der Ausgaben. Es zieht alle Informationen der Prozesse aus dem /proc virtuellen Dateisystem.
Dieses Tutorial konzentriert sich darauf, die Verwendung des Befehls ps zusammen mit einigen praktischen Beispielen zu erklären
Die Syntax des Befehls ps
Die grundlegende Syntax für die Verwendung des Befehls ps lautet wie folgt:
$ ps [options]
Die 'Optionen' des ps-Befehls können sein:
- UNIX-Optionen - mit vorangestelltem Bindestrich
- BSD-Optionen - müssen ohne Bindestrich verwendet werden
- GNU Long-Optionen - zwei Bindestriche vorangestellt
Dies ist eine sehr einfache Verwendung des ps-Befehls. Geben Sie einfach 'ps' auf Ihrer Konsole ein, um das Ergebnis zu sehen:
$ ps
Standardmäßig werden uns vier Informationsspalten angezeigt.
- PID ist eine Prozess-ID des laufenden Befehls (CMD)
- TTY ist ein Ort, an dem der laufende Befehl ausgeführt wird
- TIME gibt an, wie viel Zeit von der CPU verwendet wird, während der Befehl ausgeführt wird
- CMD ist ein Befehl, der als aktueller Prozess ausgeführt wird
Das Ausführen des Befehls ps ohne Option ist nur ein einfachstes Format des Befehls, es gibt nicht viele Informationen zurück. Um das Beste aus dem Befehl ps herauszuholen, führen wir ihn mit zusätzlichen Optionen aus, die in den folgenden Abschnitten näher erläutert werden.
01) Alle Prozesse anzeigen (UNIX-Format)
Um alle Prozesse in Ihrem Linux-System anzuzeigen, können Sie einen der folgenden Befehle ausführen:
$ ps -A
oder:
$ ps -e
Führen Sie außerdem Folgendes aus, um alle laufenden Prozesse aufzulisten:
$ ps -r
02) Alle Prozesse anzeigen (BSD-Format)
Um alle Prozesse auf Ihrem Linux-System mit dem Befehl ps im BSD-Format anzuzeigen, können Sie die folgenden Befehle ausführen:
$ ps ax
oder
$ ps aux
Wo:
- USER - der Benutzer führt den Prozess aus
- PID - die Prozess-ID
- %CPU / %MEM - der Prozentsatz von CPU / RAM, der von den Prozessen belegt wird
- VSZ - die virtuelle Speichergröße, die von den Prozessen belegt wird
- RSS - die Größe des physikalischen Speichers, der von den Prozessen belegt wird
- START - Startzeit
- STAT - der Zustand des Prozesses, in dem:S (Schlafen), R (Running), I (unterbrechbarer Schlaf).
- Time - zeigt an, wie lange der Kernel CPU-Zeit für diesen laufenden Prozess gegeben hat.
- COMMAND - der Befehl, der als aktueller Prozess ausgeführt wird
03) Zeigt alle Prozesse an, die durch einen Befehl ausgeführt werden
Um alle Prozesse aufzulisten, die von einem Befehl ausgeführt werden, verwenden wir die folgende Syntax:
$ ps -C <command_name>
Listen Sie beispielsweise alle Prozesse des Befehls „/usr/sbin/kerneloops“ auf, indem Sie Folgendes ausführen:
$ ps -C kerneloops
Sie können Argumente auch in Form einer durch Leerzeichen oder Kommas getrennten Liste verwenden, zum Beispiel:
$ ps -C sshd,systemd
04) Alle Prozesse anzeigen, die von einem Benutzer ausgeführt werden
Wenn Sie den Prozess nach Benutzer mit der Benutzer-ID 1000 auflisten möchten, führen Sie den folgenden Befehl aus:
$ ps -u 1000
Sie können Prozesse auch nach Benutzernamen suchen:
$ ps -U root -u root u
Der -U parameter
wählt nach real user ID (RUID)
. Es wählt die Prozesse aus, deren echter Benutzername oder ID sich in der Benutzerliste befindet. Die echte Benutzer-ID identifiziert den Benutzer, der den Prozess erstellt hat.
Während der -u paramater
wird anhand der effektiven Benutzer-ID (EUID) auswählen
05) Prozesse anzeigen, die der Gruppe gehören
Um alle Prozesse aufzulisten, die einem bestimmten Gruppennamen gehören, führen wir den Befehl mit -fG
aus Möglichkeit. Zum Beispiel:
$ ps -fG cas
Um alle Prozesse nach Gruppen-ID anzuzeigen, können Sie den Befehl mit der Option „-g“ ausführen. Zum Beispiel:
$ ps -g 1
Ausgabe:
PID TTY TIME CMD
1 ? 00:00:03 systemd
06) Prozesse nach PID anzeigen
Sie können alle Prozesse nach PID auflisten, indem Sie den Befehl ps mit der Option „-fp“ ausführen. Zum Beispiel:
$ ps -fp 34531
Ausgabe:
UID PID PPID C STIME TTY TIME CMD
cas 34531 1 0 06:16 ? 00:00:00 /lib/systemd/systemd --user
Um alle Prozesse nach PPID aufzulisten, führen wir außerdem den Befehl mit der Option „--ppid“ aus:
$ ps -f --ppid 34529
Ausgabe:
UID PID PPID C STIME TTY TIME CMD
cas 34609 34529 0 06:16 ? 00:00:00 sshd: cas@pts/0
07) Prozesse nach TTY anzeigen
Um alle Prozesse per TTY anzuzeigen, können Sie den Befehl mit der Option „-t“ ausführen. Zum Beispiel:
$ ps -t tty1
08) Prozesse anzeigen, die dem aktuellen Benutzer gehören
Um alle Prozesse aufzulisten, die vom aktuellen Benutzer ausgeführt werden, führen wir den Befehl mit der Option „-x“ aus:
$ ps -x
09) Anzeige aller Prozesse mit vollständiger Formatauflistung
Lassen Sie uns zum Beispiel den Befehl ps mit -f
ausführen Option, um alle Prozesse im vollständigen Format anzuzeigen:
$ ps -af
10) Alle Prozesse mit extra Format anzeigen
Führen Sie außerdem den Befehl ps mit -F
aus, um die zusätzliche Liste des Ergebnisses im vollständigen Format anzuzeigen Möglichkeit. Zum Beispiel:
$ ps -F
11) Alle Prozesse im ASCII-Hierarchieformat anzeigen
Nehmen wir zur Veranschaulichung an, dass Sie alle Prozesse auf Ihrem Linux-System im ASCII-Art-Prozesshierarchieformat anzeigen möchten. Lassen Sie uns Folgendes ausführen:
$ ps af
Die Ausgabe erfolgt im „Wald“-Format:
12) Prozess in erweiterter Ausgabe anzeigen
Wenn Sie die Ausgabe beim Ausführen des Befehls ps erweitern möchten, verwenden Sie w
Möglichkeit:
$ ps w
Lassen Sie uns einen Vergleich zwischen den Ausgaben von 'ps w' und 'ps' machen:
13) Darstellungsprozess nach benutzerdefiniertem Format
Sie können die folgende Syntax verwenden, um im benutzerdefinierten Format anzuzeigen:
Syntax:
$ ps --format column_name
$ ps -o column_name
$ ps o column_name
For example:
$ ps -e -o user,pid,cmd
14) Threads mit Thread-ID anzeigen
Um beispielsweise Threads mit SPID-Spalte anzuzeigen (SPID ist die Thread-ID), führen Sie Folgendes aus:
$ ps -aT
15) Zeigt die Informationen über Threads
Außerdem können Sie die Option '-L' verwenden, um Informationen über Threads in Ihrem Linux-System zu erhalten:
$ ps -aL
Die Ausgabe mit der Spalte „LWP“ zeigt Ihnen die Thread-ID:
Einige weitere Beispiele
01) Überprüfen Sie, welche Prozesse den meisten RAM beanspruchen
Der folgende Befehl zeigt den meisten Speicher an, der Prozesse verwendet, %MEM
in der 1. Spalte PID
in der 2. Spalte und Befehl in der 3. Spalte für alle laufenden Prozesse auf dem System:
$ ps -eo pmem,pid,cmd | sort -k 1 -nr
02) Zeigt alle Threads einer bestimmten Prozess-ID an
Dies zeigt alle Threads einer bestimmten Prozess-PID.
$ ps -Lf -p 3482
03) Zeigt Kind eines Elternprozesses
Dies zeigt alle untergeordneten Prozesse eines Prozesses an und ist nützlich, um herauszufinden, welche Prozesse aus diesem Hauptprozess abgezweigt wurden.
$ ps -o pid,pcpu,pmem,uname,comm -C apache2
04) Zeigt an, wie lange der Prozess läuft
Der folgende Befehl zeigt an, wie lange der „mysql“-Prozess auf dem System läuft:
$ ps -e -o pid,comm,etime | grep mysql
3107 mysqld_safe 18-07:01:53
3469 mysqld 18-07:01:52
etime
:verstrichene Zeit seit dem Start des Prozesses im Format [[DD-]hh:]mm:ss.etimes
:verstrichene Zeit seit dem Start des Prozesses in Sekunden.
05) Sicherheitsinformationen abrufen
Wenn wir sehen möchten, wer derzeit auf Ihrem Server angemeldet ist, können wir dies mit dem Befehl ps sehen:
$ ps -eo pid,user,args
Jetzt können Sie PIDs mit dem folgenden Befehl ihren jeweiligen Systemd-Einheiten zuordnen:
$ ps -e -o pid,unit,cmd
Schlussfolgerung
pstree (oder verwenden Sie ps -axjf ) und pgrep sind zusätzliche Befehle, die helfen können, Informationen über den laufenden Prozess zu erhalten.
Sie können ps als Echtzeitmonitor mit dem Befehl watch verwenden, sagen wir, wir möchten Prozesse nach CPU filtern und der Bericht zur Speichernutzung wird alle 1 Sekunde aktualisiert.
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
In diesem Tutorial haben wir viele Möglichkeiten kennengelernt, den Befehl ps unter Linux zu verwenden. Um alle Optionen zu erkunden, lesen Sie bitte die ps Manpage. Danke fürs Lesen und bitte hinterlassen Sie Ihren Vorschlag im Kommentarbereich unten.