Wie man mit dem Befehl ps zu Überwachen Linux-Prozessen

0
844
Fatmawati Achmad Zaenuri/Shutterstock

Holen Sie sich eine Momentaufnahme der Laufenden Prozesse in Ihren Linux-computer mit dem Befehl ps. Suchen Sie die Prozesse nach Namen, Benutzer-oder sogar terminal mit so viel oder so wenig Details wie nötig. Wir zeigen Ihnen, wie.

Prozess-Management unter Linux

Das schlagende Herz von allen Linux-und Unix-artigen Betriebssystemen ist der kernel. Unter Ihren vielen Aufgaben ist die Zuordnung von system-Ressourcen wie RAM und CPU-Zeit. Diese müssen jongliert werden in Echtzeit, so dass Sie alle Laufenden Prozesse zu bekommen und Ihren Gerechten Anteil, entsprechend der Priorität jeder Aufgabe.

Manchmal können Aufgaben lock-up, oder geben Sie eine Endlosschleife geraten oder nicht mehr reagiert, aus anderen Gründen. Oder Sie können weiterhin ausgeführt werden, aber fressen zu viel CPU-Zeit oder RAM, oder Verhalten sich einige gleichermaßen anti-sozialen Weg. Manchmal Aufgaben, die getötet werden müssen als eine Barmherzigkeit für alle beteiligten. Der erste Schritt. Natürlich ist zu identifizieren, den Prozess in Frage.

Aber vielleicht haben Sie keine Aufgabe oder performance-Probleme auf allen. Vielleicht sind Sie einfach neugierig, welche Prozesse laufen im inneren des Computers ausführen, und Sie möchten, einen Blick unter die Haube. Der ps-Befehl erfüllt beide dieser Bedürfnisse. Es gibt Ihnen eine Momentaufnahme von dem, was passiert im inneren Ihres Computers “gerade jetzt.”

ps ist flexibel genug, um Ihnen genau die Informationen, die Sie brauchen, in genau dem format, das Sie möchten, es. In der Tat, die ps hat sehr viele Optionen. Die hier beschriebenen Möglichkeiten gerecht zu werden, die für die meisten alltäglich braucht. Wenn Sie brauchen, um tiefer in die ps als wir genommen haben, es in diesem Artikel, Sie werden feststellen, dass unsere Einführung macht der man-Seite leichter zu verdauen.

Auflisten Von Prozessen

Der einfachste Weg, um mit ps zu fire it up ohne Parameter:

ps

ps zeigt eine Liste der Prozesse, die gestartet, indem der Benutzer, der den Befehl ausgeführt.

Die vier Säulen sind:

  • PID: Die Prozess-ID des Prozesses.
  • TTY: der name Der Konsole, der Benutzer ist eingeloggt.
  • ZEIT: Der CPU-Rechenzeit, die der Prozess verwendet hat.
  • CMD: Der name des Befehls, mit denen der Prozess gestartet

Listing-Prozess für Alle Benutzer

durch das hinzufügen der e-Mail (wählen Sie ” alle Prozesse) können wir machen ps Liste der gestarteten Prozesse, die durch alle Benutzer, nicht nur der Benutzer, der die Ausführung des ps-Befehls. Weil das wird eine lange Liste, wir sind Rohrleitungen in weniger.

ps -e | weniger

Der Prozess-Liste wird dann in weniger.

Wir haben viele weitere Einträge in die Liste, aber wir sehen den gleichen vier Spalten vor. Die Einträge mit einem Fragezeichen ? in der Spalte TTY wurden nicht gestartet in einem terminal-Fenster.

Zeigt Prozess-Hierarchie

Manchmal kann es helfen, um herauszufinden, ein Problem zu identifizieren oder einen bestimmten Prozess, wenn Sie sehen, welche Prozesse gestartet, andere Prozesse. Wir verwenden die -H (Hierarchie) option zu tun.

ps -eH | weniger

Die Einrückung zeigt an, welche Prozesse sind Eltern, welche anderen Prozesse.

Um ein wenig mehr Klarheit, können wir Fragen, ps, fügen Sie einige ASCII-Linien und zeichnen Sie die Hierarchie als Baum. Die Möglichkeit, dies zu tun ist –Wald-option.

ps -äh –Wald | weniger

Dies macht es einfacher, zu verfolgen, welche Prozesse sind die Eltern der anderen Prozesse.

Auflisten von Prozessen nach Namen

Sie können leiten Sie die Ausgabe von ps durch grep Listen-Einträge, die haben Namen, die Ihrer Sucheingabe entsprechen. Hier sind wir auf der Suche nach Einträgen, die mit dem “firefox” Suchbegriff:

ps -e | grep firefox

In diesem Fall ist die Ausgabe eine einzelne Eintrag für den Prozess, in dem wir interessiert sind. Natürlich hätten wir starteten mehrere Instanzen von Firefox, es wäre mehr als ein Element in der Liste zurückgegeben.

Zeigt Mehr Spalten in der Ausgabe

Weitere Spalten hinzufügen, um die Ausgabe, verwenden Sie die -f (full-format) auswählen.

ps -ef | less

Eine zusätzliche Menge von Spalten sind enthalten in der Ausgabe von ps.

Die Spalten sind:

  • UID: Die Benutzer-ID des Eigentümers dieses Prozesses.
  • PID: Die Prozess-ID des Prozesses.
  • PPID: Parent-Prozess-ID des Prozesses.
  • C: Die Zahl der Kinder, die der Prozess hat.
  • STIME: Start Zeit. Die Zeit, wenn der Prozess begonnen.
  • TTY: der name Der Konsole, der Benutzer ist eingeloggt.
  • ZEIT: Der CPU-Rechenzeit, die der Prozess verwendet hat.
  • CMD: Der name des Befehls, startete der Prozess.

Durch die Verwendung der-F – (extra-voll-format) option, die wir bekommen können, noch mehr Spalten:

ps -eF | less

Die Spalten erhalten wir diese Zeit benötigen, den Bildschirm zu scrollen seitwärts offenbaren Sie alle.

Drücken Sie die “Pfeil nach Rechts” – Taste verschiebt die Anzeige nach Links.

Die Spalten, die wir jetzt bekommen sind:

  • UID: Die Benutzer-ID des Eigentümers dieses Prozesses.
  • PID: Die Prozess-ID des Prozesses.
  • PPID: Parent-Prozess-ID des Prozesses.
  • C: Die Zahl der Kinder, die der Prozess hat.
  • SZ: die Größe, RAM-Seiten das Prozess-abbild.
  • RSS: Resident set size. Dies ist die nicht getauscht physikalischen Speicher durch den Prozess.
  • PSR: Der Prozessor, dass der Prozess zugeordnet ist.
  • STIME: Start Zeit. Die Zeit, wenn der Prozess begonnen.
  • TTY: der name Der Konsole, der Benutzer ist eingeloggt.
  • ZEIT: Der CPU-Rechenzeit, die der Prozess verwendet hat.
  • CMD: Der name des Befehls, startete der Prozess.

Listing-Prozesse mit Prozess-ID

Sobald Sie gefunden haben, die Prozess-ID des Prozesses, der Sie interessiert, können Sie es mit dem ps-Befehl zum auflisten der details des Prozesses. Verwenden Sie die -p (wählen Sie mit Prozess-ID) option, dies zu erreichen:

ps -p 3403

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

Sie sind nicht nur eine Prozess-ID. Sie können eine Liste von Prozess-IDs, getrennt durch Leerzeichen.

Listing-Prozesse durch den Befehl

Die -C (Befehl) option ermöglicht Ihnen die Suche nach einem Prozess mit dem Befehl name. Das ist der name des Befehls, startete der Prozess. Dies ist leicht Verschieden von der Befehlszeile aus, die womöglich Pfad-Namen und-Parametern oder Optionen.

ps -C shutter

Die details des Verschluss-Prozess aufgeführt sind.

Liste der Prozesse die von einem Benutzer

Zu sehen, wie die Prozesse, die im Besitz eines bestimmten Benutzers, die-u (user-Liste) option:

ps -u Maria

Die Prozesse des Benutzer-Konto mary angezeigt.

Liste der Prozesse die von Terminal

Um zu sehen, die Prozesse in Verbindung mit einem TTY, verwenden Sie die-t (wählen Sie von TTY-option). Ohne ein TTY-Nummer, die -t option, Berichte über die Prozesse im Zusammenhang mit der aktuellen terminal-Fenster.

tty
ps -t

Die tty-Befehl meldet, dass dies pseudo-teletype 0. Die Prozesse aufgeführt, die von ps -t-sind alle im Zusammenhang mit TTY pts/0.

Wenn wir an eine TTY-Nummer auf der Befehlszeile, dann sollten wir einen Bericht über die Prozesse im Zusammenhang mit TTY.

ps -t 1

Diese Zeit, die Prozesse sind alle im Zusammenhang mit TTY pts/1.

RELATED: Was ist ein TTY auf Linux? (und Wie Sie das tty-Kommando)

Auswahl der Spalten für die Anzeige

Mit der-o (format) option können Sie auswählen, welche Spalten Sie haben möchten, enthalten in der Ausgabe von ps. Geben Sie die Spalten mit Namen. Die (lange) Liste der Spaltennamen kann man auf der man-Seite im Abschnitt “Standard Format Specifiers.” In diesem Beispiel wir die Wahl haben, die CPU-Zeit (pcpu) und die Kommandozeilen-Argumente (args) in der Ausgabe enthalten.

ps -e -o pcpu,args | weniger

Die Ausgabe enthält nur unsere beiden angeforderten Spalten.

Das Sortieren Der Ausgabe von Spalten

Sie können die Ausgabe sortiert für Sie durch die Nutzung des –sort-option. Lassen Sie uns Sortieren Sie die Ausgabe nach der CPU-Spalte:

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

Der Bindestrich “-” auf der pcpu Sortieren parameter gibt eine absteigende Sortierreihenfolge.

Sehen Sie die zehn am meisten CPU-intensive Prozesse, leiten Sie die Ausgabe über den Kopf Befehl:

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

Wir erhalten eine sortierte, Liste abgeschnitten.

Wenn wir weitere Spalten hinzufügen, auf unserer Anzeige, wir können Sortieren nach mehreren Spalten. Fügen wir die pmem-Spalte. Dies ist der Prozentsatz der Arbeitsspeicher des Computers verwendet wird, das durch den Prozess. Ohne Bindestrich, oder mit einem Pluszeichen ” +”, um die Sortierreihenfolge ist aufsteigend.

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

Wir bekommen unsere extra-Spalte, und die neue Spalte enthalten ist, in der Sortierung. Die erste Spalte ist sortiert, bevor Sie in der zweiten Spalte und der zweiten Spalte in aufsteigender Reihenfolge sortiert wird, weil wir nicht setzen Sie einen Bindestrich in pmem.

Wir machen es ein bisschen mehr nützlich, und fügen Sie in den Prozess-ID-Spalte (pid), so können wir sehen, wie diese Nummer von jedem Prozess in unserer Auflistung.

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

Jetzt können wir die Prozesse identifizieren.

Töten Prozesse mit Prozess-ID

Wir haben eine Reihe von Möglichkeiten, Prozesse zu identifizieren, einschließlich name, Befehls -, Benutzer-und terminal. Wir haben auch überdachte Möglichkeiten, Prozesse zu identifizieren, die durch Ihre dynamische Attribute, wie die CPU-Nutzung und Speicher.

So, die eine oder andere Weise, wir können die Prozesse identifizieren, die ausgeführt werden. Durch das wissen um die Prozess-ID, können wir (wenn wir müssen) zu töten, alle diese Prozesse mit dem kill-Befehl. Wenn wir Sie töten wollten Prozess 898, würden wir dieses format verwenden:

sudo kill-898

Wenn alles gut geht, wird der Prozess automatisch beendet.

VERWANDTE: Wie man Prozesse Killen Aus dem Linux-Terminal

Prozesse mit bestimmten Namen beenden

Der pkill-Kommando können Sie die Prozesse nach Namen beenden. Stellen Sie sicher, dass Sie identifiziert haben, den richtigen Prozess! Dieser Befehl beendet die top-Verfahren.

sudo pkill top

Wieder, keine Nachrichten sind gute Nachrichten. Der Prozess wird automatisch beendet.

Töten Mehrere Prozesse mit Namen

Wenn Sie mehrere Kopien eines Prozesses oder eines Prozesses hervorgebracht hat eine Anzahl von Kind-Prozessen (wie Google Chrome tun können), wie können Sie töten Sie ab? Das ist genauso einfach. Wir verwenden den killall Befehl.

Wir haben zwei Exemplare des oben laufen:

ps -e | grep-top

Wir beenden mit diesem Befehl:

sudo killall top

Keine Antwort bedeutet, dass keine Probleme, so dass diese beiden Prozesse wurden beendet.

Eine Dynamische Ansicht mit top

Die Ausgabe von ps ist eine Momentaufnahme. Es wird nicht aktualisiert. Um eine Aktualisierung der Anzeige der Prozesse, verwenden Sie den Befehl top. Es bietet eine dynamische Ansicht der Prozesse laufen in Ihrem computer. Die Anzeige erfolgt in zwei teilen. Es ist ein dashboard-Bereich an der Spitze der Bildschirm, der aus Zeilen text und eine Tabelle im unteren Teil der Bildschirm, der aus Spalten.

Beginnen Sie oben mit diesem Befehl:

top

Die Spalten enthalten Informationen über die Prozesse:

  • PID: Prozess-ID
  • BENUTZER: Name des Besitzers des Prozesses
  • PR: Prozess-Priorität
  • NI: Den nice-Wert des Prozesses
  • VIRT: Virtueller Speicher von Prozess
  • RES: Resident verwendete Speicher durch den Prozess
  • SHR: Shared memory verwendet, das durch den Prozess
  • S: Status des Prozesses. Siehe die Liste unterhalb der Werte, die dieses Feld nehmen können
  • %CPU: der Anteil der CPU-Zeit verwendet, durch die der Prozess seit dem letzten update
  • %MEM: Anteil des physischen Speichers verwendet
  • ZEIT+: Gesamt-CPU-Zeit verwendet, von der Aufgabe, die in Hundertstel Sekunden
  • BEFEHL: name des Befehls oder über die Befehlszeile (name und command-line-Parameter), Wenn die Befehl-Spalte nicht sichtbar ist, drücken Sie die “Pfeil nach Rechts” – Taste.

Der status des Prozesses kann sein:

  • D: Unterbrechungsfreie schlafen
  • R: Running
  • S: Schlafen
  • T: Verfolgt (beendet)
  • Z: Zombie

Drücken Sie die Taste “Q” zum beenden von oben.

RELATED: 37 Wichtige Linux-Befehle Sie Kennen Sollten

Bevor Sie den Prozess beenden

Stellen Sie sicher, es ist ein Sie nach und überprüfen Sie, dass es nicht dazu führen Sie irgendwelche Probleme. In allem, es lohnt sich zu überprüfen, mit dem -H (Hierarchie) und –Wald-Optionen, um sicherzustellen, dass es nicht irgendwelche wichtigen untergeordnete Prozesse, die Sie vergessen hatte, über.

LESEN SIE WEITER

  • › 10 Einfache Schritte, um Bessere iPhone-und iPad-Sicherheit
  • › Fonts und Browser-Erweiterungen, die Helfen, die mit Legasthenie im Web Lesen
  • › Wie Benutze ich curl zum Herunterladen von Dateien Aus dem Linux-Kommandozeile
  • › Wie Kann Mein ISP Sagen, ich bin Mit BitTorrent?
  • › So richten Sie eine Smart-Garage