Connect with us

Wie man

Verwendung des Befehls ps zum Überwachen von Linux-Prozessen

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri / Shutterstock

Holen Sie sich mit dem einen Schnappschuss der Prozesse, die auf Ihrem Linux-Computer ausgeführt werden ps Befehl. Suchen Sie Prozesse nach Name, Benutzer oder sogar Terminal mit so vielen oder so wenigen Details, wie Sie benötigen. Wir zeigen Ihnen wie.

Prozessmanagement unter Linux

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

Manchmal können Aufgaben blockieren oder in eine enge Schleife geraten oder aus anderen Gründen nicht mehr reagieren. Oder sie laufen weiter, verschlingen aber zu viel CPU-Zeit oder RAM oder verhalten sich ebenso unsozial. Manchmal müssen Aufgaben als Gnade für alle Beteiligten getötet werden. Der erste Schritt. Natürlich ist es, den fraglichen Prozess zu identifizieren.

Aber vielleicht haben Sie überhaupt keine Aufgaben- oder Leistungsprobleme. Vielleicht sind Sie nur neugierig, welche Prozesse in Ihrem Computer ausgeführt werden, und möchten einen Blick unter die Haube werfen. Das ps Befehl erfüllt diese beiden Anforderungen. Es gibt dir Eine Momentaufnahme dessen, was in Ihrem Computer passiert „jetzt sofort.“

ps ist flexibel genug, um Ihnen genau die Informationen zu geben, die Sie in genau dem Format benötigen, das Sie möchten. Eigentlich, ps hat sehr viele Möglichkeiten. Die hier beschriebenen Optionen erfüllen die gängigsten Anforderungen. Wenn Sie tiefer gehen müssen ps Als wir es in diesem Artikel beschrieben haben, werden Sie feststellen, dass unsere Einführung die Manpage leichter verdaulich macht.

Listungsprozesse

Der einfachste Weg zu bedienen ps ist es ohne Parameter zu starten:

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 Prozess-ID-Nummer des Prozesses.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • ZEIT: Die vom Prozess verwendete CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der den Prozess gestartet hat

Listungsprozess für alle Benutzer

durch Hinzufügen der -e (alle Prozesse auswählen) können wir machen ps Listen Sie die Prozesse auf, die von allen Benutzern gestartet wurden, nicht nur von dem Benutzer, der das ausführt ps Befehl. Da dies eine lange Liste sein wird, leiten wir sie weiter less.

ps -e | less

Die Prozessliste wird weitergeleitet less.

Wir haben viel mehr Einträge in der Liste, aber wir sehen die gleichen vier Spalten wie zuvor. Die Einträge mit einem Fragezeichen ? in dem TTY Spalte wurden nicht von einem Terminalfenster aus gestartet.

Prozesshierarchie anzeigen

Manchmal kann es hilfreich sein, ein Problem herauszufinden oder einen bestimmten Prozess zu identifizieren, wenn Sie sehen können, welche Prozesse andere Prozesse gestartet haben. Wir nehmen das -H (Hierarchie-) Option dazu.

ps -eH | less

Der Einzug gibt an, welche Prozesse Eltern welcher anderen Prozesse sind.

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

ps -eH --forest | less

Dies erleichtert die Verfolgung, welche Prozesse die Eltern anderer Prozesse sind.

Auflisten von Prozessen nach Namen

Sie können die Ausgabe von weiterleiten ps durch grep Einträge auflisten die Namen haben, die mit dem Suchbegriff übereinstimmen. Hier suchen wir nach Einträgen, die dem Suchbegriff „Firefox“ entsprechen:

ps -e | grep firefox

In diesem Fall ist die Ausgabe ein einzelner Eintrag für den Prozess, an dem wir interessiert sind. Wenn wir mehrere Instanzen von Firefox gestartet hätten, würde natürlich mehr als ein Element in der Liste zurückgegeben.

Weitere Spalten in der Ausgabe anzeigen

Verwenden Sie die Option, um der Ausgabe weitere Spalten hinzuzufügen -f Option (Vollformat).

ps -ef | less

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

Die Spalten sind:

  • UID: Die Benutzer-ID des Eigentümers dieses Prozesses.
  • PID: Die Prozess-ID des Prozesses.
  • PPID: Übergeordnete Prozess-ID des Prozesses.
  • C.: Die Anzahl der Kinder, die der Prozess hat.
  • STIME: Startzeit. Die Zeit, zu der der Prozess begann.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • ZEIT: Die vom Prozess verwendete CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der den Prozess gestartet hat.

Mit dem -F (extra Vollformat) Option können wir noch mehr Spalten bekommen:

ps -eF | less

Für die Spalten, die wir diesmal erhalten, muss der Bildschirm seitwärts gescrollt werden, um alle anzuzeigen.

Durch Drücken der Taste „Rechtspfeil“ wird die Anzeige nach links verschoben.

Die Spalten, die wir jetzt erhalten, sind:

  • UID: Die Benutzer-ID des Eigentümers dieses Prozesses.
  • PID: Die Prozess-ID des Prozesses.
  • PPID: Übergeordnete Prozess-ID des Prozesses.
  • C.: Die Anzahl der Kinder, die der Prozess hat.
  • SZ: Größe des Prozessabbilds in RAM-Seiten.
  • RSS: Resident Set Größe. Dies ist der nicht ausgelagerte physische Speicher, der vom Prozess verwendet wird.
  • PSR: Der Prozessor, dem der Prozess zugewiesen ist.
  • STIME: Startzeit. Die Zeit, zu der der Prozess begann.
  • TTY: Der Name der Konsole, an der der Benutzer angemeldet ist.
  • ZEIT: Die vom Prozess verwendete CPU-Verarbeitungszeit.
  • CMD: Der Name des Befehls, der den Prozess gestartet hat.

Auflisten von Prozessen nach Prozess-ID

Sobald Sie die Prozess-ID für den Prozess gefunden haben, an dem Sie interessiert sind, können Sie sie mit dem verwenden ps Befehl, um die Details dieses Prozesses aufzulisten. Verwenden Sie die -p Option (nach Prozess-ID auswählen), um dies zu erreichen:

ps -p 3403

Die Details für diesen Prozess sind aufgeführt:

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

Auflisten von Prozessen nach Befehl

Das -C Mit der Option (Befehl) können Sie anhand des Befehlsnamens nach einem Prozess suchen. Das heißt, der Name des Befehls, der den Prozess gestartet hat. Dies unterscheidet sich geringfügig von der Befehlszeile, die Pfadnamen und Parameter oder Optionen enthalten kann.

ps -C shutter

Die Details für den Verschlussvorgang sind aufgelistet.

Auflisten von Prozessen, die einem Benutzer gehören

Verwenden Sie die, um die Prozesse anzuzeigen, die einem bestimmten Benutzer gehören -u Option (Benutzerliste):

ps -u mary

Die Prozesse des Benutzerkontos Mary werden angezeigt.

Auflisten von Prozessen nach Terminal

Verwenden Sie die, um die mit einem TTY verknüpften Prozesse anzuzeigen -t Option (nach TTY auswählen). Wird ohne TTY-Nummer verwendet, wird die -t Optionsberichte zu Prozessen, die dem aktuellen Terminalfenster zugeordnet sind.

tty
ps -t

Das tty Befehl meldet, dass dies Pseudo-Teletyp 0 ist. Die von aufgelisteten Prozesse ps -t sind alle mit TTY verbunden pts/0.

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

ps -t 1

Diesmal sind alle Prozesse mit TTY verknüpft pts/1.

Auswählen der anzuzeigenden Spalten

Mit dem -o Mit der Option (Format) können Sie auswählen, aus welchen Spalten Sie die Ausgabe aufnehmen möchten ps. Sie geben die Spalten nach Namen an. Die (lange) Liste der Spaltennamen ist auf der zu sehen Manpage im Abschnitt „Standardformatspezifizierer“. In diesem Beispiel wählen wir die CPU-Zeit (pcpu) und die Kommandozeile mit Argumenten (args) in der Ausgabe enthalten.

ps -e -o pcpu,args | less

Die Ausgabe enthält nur unsere zwei angeforderten Spalten.

Sortieren der Ausgabe nach Spalten

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

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

Der Bindestrich “-“ auf der pcpu Der Sortierparameter gibt eine absteigende Sortierreihenfolge an.

Um die zehn CPU-intensivsten Prozesse anzuzeigen, leiten Sie die Ausgabe durch die head Befehl::

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

Wir erhalten eine sortierte, abgeschnittene Liste.

Wenn wir unserer Anzeige weitere Spalten hinzufügen, können wir nach weiteren Spalten sortieren. Fügen wir das hinzu pmem Säule. Dies ist der Prozentsatz des Computerspeichers, der vom Prozess verwendet wird. Ohne Bindestrich oder mit Pluszeichen “ +“, Die Sortierreihenfolge steigt auf.

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

Wir erhalten unsere zusätzliche Spalte und die neue Spalte wird in die Sortierung einbezogen. Die erste Spalte wird vor der zweiten Spalte sortiert, und die zweite Spalte wird in aufsteigender Reihenfolge sortiert, da wir keinen Bindestrich gesetzt haben pmem.

Machen wir es etwas nützlicher und fügen es in die Spalte Prozess-ID ein (pid), damit wir die Prozessnummer jedes Prozesses in unserer Liste sehen können.

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

Jetzt können wir die Prozesse identifizieren.

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

Prozesse nach Prozess-ID beenden

Wir haben eine Reihe von Möglichkeiten zur Identifizierung von Prozessen behandelt, darunter Name, Befehl, Benutzer und Terminal. Wir haben auch Möglichkeiten zur Identifizierung von Prozessen anhand ihrer dynamischen Attribute wie CPU-Auslastung und Speicher behandelt.

Auf die eine oder andere Weise können wir also die laufenden Prozesse identifizieren. Wenn wir ihre Prozess-ID kennen, können wir (falls erforderlich) jeden dieser Prozesse mit dem beenden kill Befehl. Wenn wir Prozess 898 beenden wollten, würden wir dieses Format verwenden:

sudo kill 898

Wenn alles gut geht, wird der Prozess stillschweigend beendet.

Prozesse nach Namen töten

Das pkill Befehl ermöglicht es Ihnen Prozesse mit Namen beenden. Stellen Sie sicher, dass Sie den richtigen Prozess identifiziert haben! Dieser Befehl beendet den obersten Prozess.

sudo pkill top

Auch hier sind keine Nachrichten gute Nachrichten. Der Prozess wird stillschweigend beendet.

Mehrere Prozesse nach Namen beenden

Wenn mehrere Kopien eines Prozesses ausgeführt werden oder ein Prozess eine Reihe von untergeordneten Prozessen hervorgebracht hat (wie dies bei Google Chrome möglich ist), wie können Sie diese beenden? Das ist genauso einfach. Wir nehmen das killall Befehl.

Wir haben zwei Exemplare von Top Running:

ps -e | grep top

Wir können kündigen beide mit diesem Befehl::

sudo killall top

Keine Antwort bedeutet keine Probleme, daher wurden beide Prozesse beendet.

Ausgabe von sudo killall top in einem Termonalfenster

Holen Sie sich eine dynamische Ansicht mit oben

Die Ausgabe von ps ist eine Schnappschussansicht. Es wird nicht aktualisiert. Verwenden Sie die Option, um eine aktualisierte Ansicht der Prozesse zu erhalten top Befehl. Es bietet eine dynamische Ansicht der Prozesse, die auf Ihrem Computer ausgeführt werden. Das Display besteht aus zwei Teilen. Am oberen Rand des Bildschirms befindet sich ein Dashboard-Bereich, der aus Textzeilen besteht, und im unteren Teil des Bildschirms eine Tabelle, die aus Spalten besteht.

Start top mit diesem Befehl:

top

Die Spalten enthalten Informationen zu den Prozessen:

  • PID: Prozess ID
  • NUTZER: Name des Eigentümers des Prozesses
  • PR: Prozesspriorität
  • NI: Der schöne Wert des Prozesses
  • VIRT: Vom Prozess verwendeter virtueller Speicher
  • RES: Vom Prozess verwendeter residenter Speicher
  • SHR: Vom Prozess verwendeter gemeinsamer Speicher
  • S.: Status des Prozesses. In der folgenden Liste sind die Werte aufgeführt, die dieses Feld annehmen kann
  • %ZENTRALPROZESSOR: Der Anteil der CPU-Zeit, der vom Prozess seit dem letzten Update verwendet wurde
  • % MEM: Anteil des verwendeten physischen Speichers
  • ZEIT +: Gesamt-CPU-Zeit, die von der Task in Hundertstelsekunden verwendet wird
  • BEFEHL: Befehlsname oder Befehlszeile (Name und Befehlszeilenparameter) Wenn die Befehlsspalte nicht angezeigt wird, drücken Sie die Taste „Pfeil nach rechts“.

Der Status des Prozesses kann einer der folgenden sein:

  • D.: Ununterbrochener Schlaf
  • R.: Laufen
  • S.: Schlafen
  • T.: Verfolgt (gestoppt)
  • Z.: Zombie

Drücken Sie die Taste „Q“, um das Menü zu verlassen top.

Bevor Sie einen Prozess beenden

Stellen Sie sicher, dass es das ist, nach dem Sie suchen, und stellen Sie sicher, dass es Ihnen keine Probleme bereiten wird. Insbesondere lohnt es sich, sich bei der zu erkundigen -H (Hierarchie) und --forest Optionen, um sicherzustellen, dass keine wichtigen untergeordneten Prozesse vorhanden sind, die Sie vergessen haben.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia