So verwenden Sie den Befehl ps, um Linux-Prozesse zu überwachen

Inhalt

Ein Terminalfenster auf einem Linux-Laptop.

Erhalten Sie eine Momentaufnahme der Prozesse, die auf Ihrem Linux-Computer ausgeführt werden, mit dem ps Befehl. Prozesse nach Namen lokalisieren, Benutzer oder sogar Terminal mit so vielen oder so wenigen Details, wie Sie benötigen. Wir zeigen dir wie.

Prozessmanagement unter Linux

Das Herz aller Linux- und Unix-ähnlichen Betriebssysteme ist der Kernel. Zu seinen vielen Aufgaben gehört die Zuweisung von Systemressourcen, wie RAM und CPU-Zeit. Diese müssen in Echtzeit kombiniert werden, damit alle laufenden Prozesse ihren gerechten Anteil bekommen, entsprechend der Priorität jeder Aufgabe.

Manchmal, Aufgaben können abstürzen, in einen geschlossenen Kreislauf geraten oder aus anderen Gründen nicht mehr reagieren. Oder sie können weiterlaufen, aber sie verbrauchen zu viel CPU- oder RAM-Zeit, oder sich ebenso unsozial verhalten. Manchmal, Aufgaben sollten aus Gnade für alle Beteiligten entfernt werden. Der erste Schritt. Entschieden, ist das fragliche Verfahren zu identifizieren.

Aber vielleicht hast du gar keine Hausaufgaben oder Leistungsprobleme. Vielleicht sind Sie einfach nur neugierig, welche Prozesse in Ihrem Computer ablaufen und möchten einen Blick unter die Haube werfen. das ps Der Befehl erfüllt beide Bedürfnisse. Gibt es dir eine Momentaufnahme dessen, was in Ihrem Computer passiert “jetzt.”

ps ist flexibel genug, um Ihnen genau die Informationen zu liefern, die Sie benötigen, in genau dem Format, das Sie möchten. Genau genommen, ps du hast viele möglichkeiten. Die hier beschriebenen Alternativen decken die häufigsten Bedürfnisse ab. Wenn du dich vertiefen möchtest ps von dem, was wir in diesem Beitrag aufgenommen haben, Sie werden feststellen, dass unsere Einführung die Manpage leichter verdaulich macht.

Listungsprozesse

Der einfachste Weg zu verwenden ps ist es ohne Parameter einzuschalten:

ps

ps zeigt eine Liste der Prozesse an, die von dem Benutzer gestartet wurden, der den Befehl ausgeführt hat.

Die vier Spalten sind:

  • PID: Die Verfahrensidentifikationsnummer des Verfahrens.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • WETTER: Die vom Verfahren verbrauchte CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der die Prozedur gestartet hat

Listungsverfahren für alle Benutzer

das hinzufügen -e (alle Prozesse auswählen) wir können ps listet die Prozesse auf, die von allen Benutzern gestartet wurden, nicht nur der Benutzer, der das ausführt ps Befehl. Denn das wird eine lange Liste, wir integrieren es in less.

ps -e | weniger

Die Prozessliste wird weitergeleitet an less.

Wir haben noch viele weitere Einträge in der Liste, aber wir sehen die gleichen vier Spalten wie zuvor. Einträge mit Fragezeichen ? bei TTY Die Spalte wurde nicht aus einem Terminalfenster gestartet.

Prozesshierarchie anzeigen

Manchmal, Sie können helfen, einen Roadblock zu beheben oder ein bestimmtes Verfahren zu identifizieren, wenn Sie sehen, welche Prozesse andere Prozesse gestartet haben. Wir nehmen das -H (Hierarchie) Möglichkeit es zu tun.

ps -eH | weniger

Einrückung gibt an, welche Prozesse welchen anderen Prozessen übergeordnet sind.

Um etwas mehr Klarheit zu schaffen, wir können fragen ps etwas hinzufügen ASCII Linien und die Hierarchie als Baum zu zeichnen. Die Möglichkeit dazu ist die --forest Möglichkeit.

ps -eH --wald | weniger

Auf diese Weise lässt sich leicht nachverfolgen, welche Prozesse die Eltern anderer Prozesse sind..

Liste der Prozesse nach Namen

Sie können die Ausgabe von weiterleiten ps durch grep Einträge auflisten die Namen haben, die dem Suchbegriff entsprechen. jetzt. “Feuerfuchs”:

ps -e | grep Firefox

Für diesen Fall, die Ausgabe ist eine einzelne Eingabe für das Verfahren, das uns interessiert. Entschieden, wenn wir mehrere Instanzen von Firefox gestartet hätten, es würde mehr als ein Element in der Liste zurückgegeben werden.

Mehr Spalten in der Ausgabe anzeigen

So fügen Sie der Ausgabe weitere Spalten hinzu, benutze el -f Möglichkeit (Vollformat).

ps -ef | weniger

Ein zusätzlicher Satz von Spalten ist in der Ausgabe von . enthalten ps.

Die Spalten sind:

  • UID: Benutzer-ID des Inhabers dieses Verfahrens.
  • PID: Die Prozedur-ID der Prozedur.
  • PPID: ID des Hauptverfahrens des Verfahrens.
  • C: Die Anzahl der Kinder, die das Verfahren hat.
  • WETTER: Startzeit. In dem Moment, als das Verfahren begann.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • WETTER: Die vom Verfahren verbrauchte CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der die Prozedur gestartet hat.

Verwendung der -F (volles Extra-Format) wir können noch mehr Spalten bekommen:

ps -eF | weniger

Die Spalten, die wir dieses Mal erhalten, erfordern ein seitliches Scrollen des Bildschirms, um sie alle anzuzeigen.

jetzt. “Rechter Pfeil”, der Bildschirm scrollt nach links.

Die Spalten, die wir jetzt erhalten, sind:

  • UID: Benutzer-ID des Inhabers dieses Verfahrens.
  • PID: Die Prozedur-ID der Prozedur.
  • PPID: ID des Hauptverfahrens des Verfahrens.
  • C: Die Anzahl der Kinder, die das Verfahren hat.
  • Größe: Bildgröße der Prozedur in RAM-Seiten.
  • RSS: Größe des Bewohnersets. Dies ist der unveränderte physische Speicher, der von der Prozedur verwendet wird.
  • PSR: Der Auftragsverarbeiter, dem das Verfahren zugewiesen ist.
  • WETTER: Startzeit. In dem Moment, als das Verfahren begann.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • WETTER: Die vom Verfahren verbrauchte CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der die Prozedur gestartet hat.

Liste der Prozesse nach Prozedur-ID

Sobald Sie die Verfahrens-ID für das Verfahren gefunden haben, an dem Sie interessiert sind, Sie können es mit verwenden ps Befehl, um die Details dieser Prozedur aufzulisten. Verwenden Sie die -p (Wählen Sie nach Verfahrens-ID) Möglichkeit, dies zu erreichen:

ps -p 3403

Details zu diesem Verfahren sind aufgeführt:

Sie sind nicht auf eine Verfahrens-ID beschränkt. Sie können eine Liste von Prozess-IDs bereitstellen, durch Leerzeichen getrennt.

Liste der Prozesse nach Befehl

das -C Die Option (Befehl) ermöglicht die Suche nach einer Prozedur anhand des Befehlsnamens. Mit anderen Worten, der Name des Befehls, der die Prozedur gestartet hat. Dies unterscheidet sich subtil von der Befehlszeile, die Pfadnamen und Parameter oder Optionen enthalten können.

ps -C Verschluss

Details zum Verschlussverfahren sind aufgeführt.

Liste der Prozesse, die einem Benutzer gehören

So zeigen Sie die Prozesse an, die einem bestimmten Benutzer gehören, benutze el -u (Benutzerliste) Möglichkeit:

ps - du maria

Die Prozesse, die dem Mary-Benutzerkonto gehören, werden angezeigt.

Liste der Prozesse nach Terminal

So zeigen Sie die mit einem TTY verknüpften Prozesse an, benutze el -t (wählen nach TTY) Möglichkeit. Wird ohne TTY-Nummer verwendet, das -t Die Option berichtet über die Prozesse, die mit dem aktuellen Terminalfenster verbunden sind.

tty
PST

das tty Befehl meldet, dass dies ein Pseudoticker ist 0. Die von . aufgelisteten Prozesse ps -t sind alle mit TTY . verbunden pts/0.

Wenn wir eine TTY-Nummer auf der Befehlszeile übergeben, wir sollten einen Bericht über die mit diesem TTY verbundenen Prozesse erhalten.

PST 1

Diesmal sind alle Prozesse mit TTY verbunden pts/1.

VERBUNDEN: Was ist ein TTY unter Linux?? (und wie man den tty-Befehl verwendet)

Wählen Sie die anzuzeigenden Spalten aus

Mit dem -o (Format) Sie können die Spalten auswählen, die Sie in die Ausgabe von einschließen möchten ps. Spalten werden nach Namen angegeben. Die Liste (lang) Spaltennamen sind in der zu sehen Handbuchseite jetzt. “jetzt.”. In diesem Beispiel, Wir entscheiden uns für die CPU-Zeit (pcpu) und die Kommandozeile mit Argumenten (args) in der Ausgabe enthalten.

ps -e -o pcpu,args | weniger

Die Ausgabe enthält nur unsere beiden angeforderten Spalten.

Sortieren Sie die Ausgabe nach Spalten

Sie können die Ausgabe für Sie sortieren, indem Sie die --sort Möglichkeit. Sortieren wir die Ausgabe nach der CPU-Spalte:

ps -e -o pcpu,args --sort -pcpu| weniger

jetzt. “-” über ihn pcpu Der Parameter sort gibt eine absteigende Sortierreihenfolge an.

So sehen Sie die zehn CPU-intensivsten Prozesse, kanalisieren Sie den Auslass durch die head Befehl:

ps -e -o pcpu,args --sort -pcpu | Kopf -10

Wir bekommen eine geordnete und abgeschnittene Liste.

Wenn wir unserem Bildschirm weitere Spalten hinzufügen, wir können nach mehr Spalten sortieren. Fügen wir die hinzu pmem Säule. Dies ist der Prozentsatz des Computerspeichers, der von der Prozedur verwendet wird.. jetzt. ” +“, Sortierreihenfolge ist aufsteigend.

ps -e -o pcpu,pmem,args --sort -pcpu,pmem | Kopf -10

Wir bekommen unsere zusätzliche Spalte und die neue Spalte wird in die Klassifizierung aufgenommen. Die erste Spalte wird vor der zweiten Spalte sortiert, und die zweite Spalte ist aufsteigend sortiert, da wir keinen Bindestrich eingefügt haben pmem.

Machen wir es etwas nützlicher und fügen wir die Prozedur-ID-Spalte hinzu (pid) damit wir die Verfahrensnummer jedes Verfahrens in unserer Liste sehen können.

ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | Kopf -10

Jetzt können wir die Prozesse identifizieren.

Ps -e -o pid-Ausgabe, pcpu, pmem, args --sort -pcpu, pmem |  Kopf 10

Töte Prozesse nach Prozedur-ID

Wir haben eine Reihe von Alternativen abgedeckt, um Prozesse zu identifizieren, inklusive Name, der Befehl, Benutzer und Endgerät. Wir decken auch Alternativen ab, um Prozesse anhand ihrer dynamischen Attribute zu identifizieren, wie CPU- und Speichernutzung.

Dann, in gewisser Weise, Wir können die laufenden Prozesse identifizieren. Kenntnis Ihrer Verfahrens-ID, wir können (Falls erforderlich) Löschen Sie einen dieser Prozesse mit der kill Befehl. Wenn wir das Verfahren töten wollten 898, Wir würden dieses Format verwenden:

sudo töten 898

Wenn alles gut geht, die Prozedur endet stumm.

VERBUNDEN: So beenden Sie Prozesse vom Linux-Terminal aus

Prozesse nach Namen beenden

das pkill der Befehl ermöglicht es Ihnen Prozesse nach Namen beenden. Stellen Sie sicher, dass Sie das richtige Verfahren identifiziert haben! Dieser Befehl beendet den oberen Vorgang.

sudo pkill top

Ein Mal noch, keine Nachrichten zu haben ist eine gute Nachricht. Der Vorgang endet stumm.

Töte mehrere Prozesse nach Namen

Wenn Sie mehrere Kopien einer laufenden Prozedur haben, oder eine Prozedur hat mehrere untergeordnete Prozesse hervorgebracht (Wie kann Google Chrome tun?), Wie kann man sie entfernen? Das ist genauso einfach. Wir nehmen das killall Befehl.

Wir haben zwei Kopien von Top Running:

ps -e | Griff oben

Wir können fertig werden beides mit diesem Befehl:

sudo killall top

Wenn es keine Antwort gibt, keine Probleme, also sind beide Prozesse beendet.

sudo killall Top-Ausgabe in einem thermonalen Fenster

Erhalten Sie eine dynamische Ansicht mit der Oberseite

Die Ausgabe von ps es ist eine Schnappschussansicht. Es wird nicht aktualisiert. Um einen aktuellen Überblick über Ihre Prozesse zu erhalten, Verwenden Sie die top Befehl. Bietet ein dynamische Ansicht der auf Ihrem Computer laufenden Prozesse. Der Bildschirm ist in zwei Teile unterteilt. Am oberen Bildschirmrand befindet sich ein Dashboard-Bereich, der aus Textzeilen besteht, und eine Tabelle am unteren Bildschirmrand, die aus Spalten besteht.

Start top mit diesem Befehl:

oben

Die Spalten enthalten Informationen zu den Prozessen:

  • PID: Verfahrensidentifikation
  • NUTZERNAME: Name des Inhabers des Verfahrens
  • PR: Prioritätsverfahren
  • NI: Der gute Wert des Verfahrens
  • VIRT: Von der Prozedur verwendeter virtueller Speicher
  • RES: Von der Prozedur verwendeter residenter Speicher
  • SHR: Von der Prozedur verwendeter gemeinsamer Speicher
  • S: Stand des Verfahrens. Siehe die Liste unten mit den Werten, die dieses Feld annehmen kann
  • %UPC: der Prozentsatz der CPU-Zeit, die von der Prozedur seit der letzten Aktualisierung verwendet wurde
  • % MEM: Prozentsatz des verwendeten physischen Speichers
  • WETTER +: Gesamte CPU-Zeit, die von der Aufgabe verwendet wird, in Hundertstelsekunden
  • BEFEHL: Befehlsname oder Befehlszeile (Befehlszeilenname und Parameter) Wenn Sie die Befehlsspalte nicht sehen können, drücke die "Rechtspfeil"-Taste.

Der Verfahrensstatus kann einer der folgenden sein:

  • D: Ununterbrochener Schlaf
  • R: In Eile
  • S: Schlafend
  • T: Verfolgung (gestoppt)
  • MIT: Zombie

Drücken Sie die Taste “Q” jetzt. top.

VERBUNDEN: 37 Wichtige Linux-Befehle, die Sie kennen sollten

Vor dem Töten einer Prozedur

Stellen Sie sicher, dass es das ist, wonach Sie suchen, und stellen Sie sicher, dass es Ihnen keine Probleme bereitet. Bestimmtes, Es ist wichtig, hervorzuheben, konsultieren Sie die -H (Hierarchie) und --forest Optionen, um sicherzustellen, dass Sie keine wichtigen untergeordneten Prozesse haben, die Sie vergessen haben.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.