Unter Linux wird eine laufende Instanz eines Programms Prozess genannt. Wenn Sie auf einem Linux-Rechner arbeiten, müssen Sie gelegentlich herausfinden, welche Prozesse gerade ausgeführt werden.
Es gibt eine Reihe von Befehlen, die Sie verwenden können, um Informationen über die laufenden Prozesse mit ps
zu finden , pstree
, und top
die am häufigsten verwendeten sind.
Dieser Artikel erklärt, wie man ps
verwendet Befehl, um die derzeit laufenden Prozesse aufzulisten und Informationen über diese Prozesse anzuzeigen.
Verwendung von ps
Befehl #
Die allgemeine Syntax für ps
Befehl lautet wie folgt:
ps [OPTIONS]
Aus historischen und Kompatibilitätsgründen ist die Datei ps
Der Befehl akzeptiert mehrere verschiedene Arten von Optionen:
- UNIX-Stiloptionen, denen ein einzelner Bindestrich vorangestellt ist.
- BSD-Stiloptionen, ohne Bindestrich verwendet.
- GNU Long-Optionen, denen zwei Bindestriche vorangestellt sind.
Verschiedene Optionstypen können gemischt werden, aber in bestimmten Fällen können Konflikte auftreten, daher ist es am besten, bei einem Optionstyp zu bleiben.
BSD- und UNIX-Optionen können gruppiert werden.
In seiner einfachsten Form, wenn es ohne Option verwendet wird, ps
gibt vier Spalten mit Informationen für mindestens zwei Prozesse aus, die in der aktuellen Shell laufen, die Shell selbst und die Prozesse, die in der Shell laufen, als der Befehl aufgerufen wurde.
ps
Die Ausgabe enthält Informationen über die Shell (bash
) und der in dieser Shell laufende Prozess (ps
, der von Ihnen eingegebene Befehl):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
Die vier Spalten sind mit PID
beschriftet , TTY
, TIME
, und CMD
.
PID
- Die Prozess-ID. Normalerweise beim Ausführen vonps
Befehl ist die wichtigste Information, nach der der Benutzer sucht, die Prozess-PID. Wenn Sie die PID kennen, können Sie einen fehlerhaften Prozess beenden.TTY
- Der Name des steuernden Terminals für den Prozess.TIME
- Die kumulative CPU-Zeit des Prozesses, angezeigt in Minuten und Sekunden.CMD
- Der Name des Befehls, der zum Starten des Prozesses verwendet wurde.
Die obige Ausgabe ist nicht sehr nützlich, da sie nicht viele Informationen enthält. Die wahre Kraft des ps
Der Befehl kommt beim Start mit zusätzlichen Optionen.
Das ps
Der Befehl akzeptiert eine große Anzahl von Optionen, die verwendet werden können, um eine bestimmte Gruppe von Prozessen und verschiedene Informationen über den Prozess anzuzeigen, aber im täglichen Gebrauch werden nur eine Handvoll benötigt.
ps
wird am häufigsten mit der folgenden Kombination von Optionen verwendet:
BSD-Formular :
ps aux
- Der
a
Option teiltps
mit um die Prozesse aller Benutzer anzuzeigen. Nur die Prozesse, die keinem Terminal zugeordnet sind, und Prozesse von Gruppenleitern werden nicht angezeigt. u
steht für ein anwenderorientiertes Format, das detaillierte Informationen zu den Prozessen bereitstellt.- Das
x
Option weistps
an um die Prozesse ohne steuerndes Terminal aufzulisten. Das sind hauptsächlich Prozesse, die beim Booten gestartet werden und im Hintergrund laufen.
Der Befehl zeigt Informationen in elf Spalten mit der Bezeichnung USER
an , PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
, und CMD
.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
PID
haben wir bereits erklärt , TTY
, TIME
und CMD
Etiketten. Hier ist eine Erklärung anderer Labels:
USER
- Der Benutzer, der den Prozess ausführt.%CPU
- Die CPU-Auslastung des Prozesses.%MEM
- Der Prozentsatz der Größe des residenten Satzes des Prozesses zum physischen Speicher auf der Maschine.VSZ
- Virtuelle Speichergröße des Prozesses in KiB.RSS
- Die Größe des physischen Speichers, den der Prozess verwendet.STAT
- Der Prozesszustandscode, z. B.Z
(Zombie),S
(Schlafen) undR
(läuft).START
- Die Zeit, zu der der Befehl gestartet wurde.
Das f
Option teilt ps
mit um eine Baumansicht von Eltern-zu-Kind-Prozessen anzuzeigen:
ps auxf
Das ps
Mit dem Befehl können Sie auch die Ausgabe sortieren. Um die Ausgabe beispielsweise nach der Speicherauslastung zu sortieren, würden Sie Folgendes verwenden:
ps aux --sort=-%mem
UNIX-Formular :
ps -ef
- Das
-e
Option weistps
an um alle Prozesse anzuzeigen. - Das
-f
steht eine vollformatige Auflistung, die detaillierte Informationen zu den Prozessen gibt.
Der Befehl zeigt Informationen in acht Spalten mit der Bezeichnung UID
an , PID
, PPID
, C
, STIME
, TIME
, und CMD
.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
Die nicht bereits erläuterten Bezeichnungen haben folgende Bedeutung:
UID
- Gleich wieUSER
, der Benutzer, der den Prozess ausführt.PPID
- Die ID des übergeordneten Prozesses.C
- Gleich wie%CPU
, die CPU-Auslastung des Prozesses.STIME
- Gleich wieSTART
, die Zeit, zu der der Befehl gestartet wurde.
Um nur die Prozesse anzuzeigen, die unter einem bestimmten Benutzer ausgeführt werden, geben Sie den folgenden Befehl ein, wobei linuxize
ist der Name des Benutzers:
ps -f -U linuxize -u linuxize
Benutzerdefiniertes Format #
Das o
Mit der Option können Sie angeben, welche Spalten angezeigt werden, wenn ps
ausgeführt wird Befehl.
Zum Beispiel, um nur Informationen über die PID
zu drucken und COMMAND
, würden Sie einen der folgenden Befehle ausführen:
ps -efo pid,comm
ps auxo pid,comm
Mit ps
Mit anderen Befehlen #
ps
kann in Kombination mit anderen Befehlen durch Rohrleitungen verwendet werden.
Wenn Sie die Ausgabe von ps
anzeigen möchten Befehl, eine Seite nach der anderen an less
weiterleiten Befehl:
ps -ef | less
Die Ausgabe von ps
Befehl kann mit grep
gefiltert werden . Um beispielsweise nur den Prozess anzuzeigen, der dem Root-Benutzer gehört, würden Sie Folgendes ausführen:
ps -ef | grep root
Schlussfolgerung #
Das ps
Der Befehl ist einer der am häufigsten verwendeten Befehle bei der Behebung von Problemen auf Linux-Systemen. Es hat viele Optionen, aber normalerweise verwenden die meisten Benutzer entweder ps aux
oder ps -ef
um Informationen über laufende Prozesse zu sammeln.
Weitere Informationen zu ps
, geben Sie man ps
ein in Ihrem Terminal.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.