50 % Rabatt alle Pläne, begrenzte Zeit. Beginnend bei $2.48/mo
Noch 10 Minuten übrig
Server und Betriebssystem

Beherrschen des Prozessmanagements – Linux ps aux Command

Ada Lovegood By Ada Lovegood 10 Min. Lektüre Aktualisiert am 11. Juli 2024
Linux ps aux-Befehl

Haben Sie mindestens fünf weitere Tabs in Ihrem Browser geöffnet und versuchen, die Lösung für ein Linux-Problem zu finden, auf das Sie gestoßen sind?
Dieses Verhalten ist nicht spezifisch für Sie oder für Menschen im Allgemeinen. Auch Maschinen sind Multitasking-fähig. Und genau wie Sie ist auch Linux ein Multitasker und führt mehrere Prozesse gleichzeitig durch. Ganz gleich, ob Sie ein Entwickler sind, der Linux beruflich nutzt, oder ein normaler Benutzer, der im Alltag mit Linux arbeitet, Sie sollten in der Lage sein, diese parallelen Prozesse zu verstehen, um die volle Kontrolle über Ihr System zu behalten. Prozessmanagement und Systemsteuerung sind wesentliche Aspekte beim Betrieb eines Linux-Systems.

Um auf dem System ablaufende Prozesse effizient zu verwalten, in Echtzeit zu sehen, was passiert, einen Überblick über alle Hintergrundprozesse zu haben und Systemressourcen zu steuern, benötigen Sie technische Kenntnisse im Prozessmanagement. Der Befehl ps aux ist ein leistungsstarker Befehl, der eine wichtige Rolle bei der Prozessverwaltung und Systemsteuerung spielt. In diesem Beitrag erfahren wir mehr über den Befehl ps aux und seine Anwendungsfälle. Wir werden auch die Grundlagen der Funktionsweise von Linux-Prozessen behandeln.

Prozessmanagement unter Linux verstehen

Bei der Arbeit mit Linux erfolgen die meisten unserer Interaktionen mit dem System in Form von Befehlen. Unter Linux ist ein Prozess die Ausführung eines Befehls. Bei der Linux-Prozessverwaltung geht es darum, die Prozesse zu manipulieren, die ein Befehl gestartet hat. Sie können einen Prozess beenden, einen Prozess starten oder die beendeten Prozesse fortsetzen. Sie können auch laufende Befehle manipulieren.

Es gibt zwei Arten von Linux-Prozessen:

  • Vordergrundprozesse
  • Hintergrundprozesse

Linux-Vordergrundprozesse

Ein Vordergrundprozess ist ein Prozess, der aktiv ausgeführt wird und normalerweise eine ständige Interaktion in Echtzeit mit dem Benutzer erfordert. Wenn ein Vordergrundprozess in Aktion ist, wird die Ausführung anderer Prozesse angehalten. Sie können also keine anderen Befehle ausführen. Ein Vordergrundprozess empfängt Eingaben von der Tastatur als Standardeingabe oder stdin. Um weitere Verwirrung zu vermeiden, sind stdin und stdout zusammen mit stderr Linux-Datenströme. Es geht im Wesentlichen darum, wie der Benutzer mit dem Prozess interagiert und Daten dafür bereitstellt. Es gibt eine Standardausgabe oder Standardausgabe, die vom Prozess basierend auf seiner Funktionalität und der Eingabe erstellt wird. Vordergrundprozesse sind der Standardausführungsmodus unter Linux.

Linux-Hintergrundprozesse

Hintergrundprozesse sind das genaue Gegenteil von Vordergrundprozessen, da sie keine Benutzerinteraktion erfordern und nicht ausschließlich den gesamten Raum des Terminals belegen, was die Ausführung anderer Prozesse ermöglicht. Auch die Art der Ein- und Ausgabe von Hintergrundprozessen ist unterschiedlich. Sie nehmen normalerweise keine Standardmedikamente ein. Die Ergebnisse des Prozesses können jedoch als stdout angezeigt werden. Die Anzeige der Ausgabe von Hintergrundprozessen erfolgt gleichzeitig mit der Ausgabe anderer Vordergrundprozesse. So können Sie den Fortschritt oder die Ergebnisse des Hintergrundprozesses sehen, ohne andere wichtige Aktionen zu unterbrechen.

Da die Ausführung einer Vielzahl von Aufgaben unter Linux von der Befehlszeile abhängt, können Vordergrundprozesse problematisch sein, während die Ausführung von Prozessen im Hintergrund Ihr Terminal von der Arbeit an anderen Aufgaben befreit. Daher ist es hier sinnvoll, eine Vordergrundaufgabe in den Hintergrund zu stellen. Um zu Senden Sie einen Prozess in den Hintergrund Sie sollten zunächst verhindern, dass es im Vordergrund ausgeführt wird. Dies geschieht einfach durch Drücken von STRG+Z. Wenn Sie dann den Befehl bg eingeben, wird der beendete Prozess im Hintergrund erneut ausgeführt. Der Befehl fg kehrt den Vorgang um und bringt ihn in den Vordergrund.

Prozessstatus; Syntax, Befehle und Interpretation der Ausgabe

Für eine effektive Prozessverwaltung unter Linux ist es erforderlich, den Status von Prozessen zu verstehen, die mit dem Befehl ps aux überwacht werden können. Bevor wir uns jedoch eingehender mit dem Befehl ps aux befassen, lernen wir die verschiedenen Prozessstatus kennen. Obwohl es verschiedene Arten von Prozessen und Prozessstatus gibt, finden Sie hier eine Tabelle mit den häufigsten:

Prozessstatus Beschreibung
Laufen(R) Der Prozess läuft gerade und beansprucht CPU-Ressourcen.
Schlafen Unterbrechbar (S) Der Prozess wartet darauf, dass eine bestimmte Eingabe oder ein bestimmtes Ereignis erneut ausgeführt wird. Derzeit werden keine CPU-Ressourcen verwendet. Wenn Ressourcen verfügbar sind oder Signale gegeben werden, beginnt der Prozess von vorne.
Unterbrechungsfrei (D) Genau wie ein Prozess, der sich im unterbrechbaren Ruhezustand befindet, verbraucht ein unterbrechungsfreier Ruheprozess keine CPU-Ressourcen. Der einzige Unterschied besteht darin, dass es nicht auf Signale reagiert, sondern erst wieder zum Leben erwacht, wenn Ressourcen verfügbar sind.
Gestoppt(T) Eine Benutzereingabe oder ein bestimmtes Ereignis hat den Prozess angehalten. Ein Prozess im gestoppten Zustand verbraucht keine CPU-Ressourcen.
Tot(X) Der Prozess wurde beendet und existiert nicht mehr.

Ein gutes Verständnis dieser Prozessstatus ist ein entscheidender Aspekt für die effektive Verwaltung und Fehlerbehebung von Linux-Systemen. Lassen Sie uns nun die Syntax und Befehle zum Abrufen des Prozessstatus unter Linux sowie die Interpretation der Ausgabe behandeln.

Syntax und Befehle zum Abrufen des Prozessstatus

Sie können den Prozessstatus unter Linux mit der grundlegenden Syntax für den ps-Befehl abrufen:

ps [process name]

Es gibt auch andere Optionen, die mit dem ps-Befehl verwendet werden:

Aux: Diese Option zeigt eine umfassende Liste aller auf dem System ausgeführten Prozesse. Es stellt Informationen wie Prozess-IDs (PIDs), übergeordnete Prozess-IDs (PPIDs), CPU- und Speichernutzung sowie Prozessstatus bereit. Die vom Befehl ps aux bereitgestellte Ausgabe ist viel übersichtlicher, besser lesbar und enthält viele nützlichere Informationen als der grundlegende Befehl ps.

ef: Diese Option zeigt eine vollständige Liste der Prozesse mit zusätzlichen Details an, einschließlich der Prozesshierarchie als baumartige Struktur.

l: Diese Option bietet ein langes Listenformat mit detaillierteren Informationen zu Prozessen.

Die Ausgabe verstehen

Wenn Sie den Befehl ps mit den gewünschten Optionen ausführen, wird eine Ausgabe generiert, die die aktuell auf Ihrem System ausgeführten Prozesse darstellt. Die Ausgabe besteht aus Spalten, die verschiedene Prozessattribute anzeigen, einschließlich der Prozess-ID (PID), der übergeordneten Prozess-ID (PPID), der CPU-Auslastung, der Speichernutzung, des Prozessstatus, des Terminaltyps und des Befehlsnamens.

Hier ist eine Erklärung, was jede dieser Spalten bedeutet:

PID: In dieser Spalte wird die eindeutige ID des Prozesses angezeigt.

TTY: In dieser Spalte wird der Terminaltyp angezeigt, bei dem sich der Benutzer angemeldet hat.

ZEIT: Diese Spalte ist ein Indikator dafür, wie viel CPU in Minuten und Sekunden durch diesen Prozess verbraucht wird.

CMD: Diese Spalte stellt den Namen des Befehls dar, der diesen Prozess gestartet hat.

Durch die Analyse der vom Befehl ps bereitgestellten Informationen erhalten Sie einen tieferen Einblick in das Verhalten Ihres Linux-Computers.

Erweiterte ps-Techniken für das Prozessmanagement mit dem ps-Befehl

Lassen Sie uns einige der erweiterten Funktionen des ps-Befehls untersuchen und wie sie effektiv genutzt werden können:

1. Prozesssortierung

Mit dem Befehl ps aux kann die endgültige Ausgabe nach verschiedenen Spalten sortiert werden. Beispielsweise können Sie Prozesse nach Prozess-ID oder CPU-Auslastung sortieren, um sie in der gewünschten Reihenfolge anzuzeigen.

Hier ist ein Beispiel für das Sortieren von Prozessen basierend auf der Prozess-ID mit ps aux:

ps aux –-sort pid

Der Befehl head wird verwendet, um nur die ersten fünf Zeilen der Ausgabe abzurufen.

ps aux sort pid

2. Visualisierung des Prozessbaums

Wenn Sie die Eltern-Kind-Beziehung von Prozessen klar sehen möchten, können Sie den Befehl ps mit der Option „forest“ verwenden.

ps -aux --forest

Eltern-Kind-Beziehung von Linux-Prozessen

Um die Beziehung zwischen Prozessen in einem baumartigen Muster anzuzeigen, können Sie auch den Befehl pstree verwenden. Dieser Befehl erstellt eine Ausgabe, die verständlicher ist und die Hierarchie zwischen Prozessen perfekt veranschaulicht. Um diesen Befehl zu verwenden, geben Sie den folgenden Befehl ein:

pstree [pid or username]

Indem Sie diesem Befehl eine PID zuweisen, weisen Sie den Befehl an, diesen Prozess als Wurzel des Baums zu betrachten.

3. Filterprozesse

Stellen Sie sich vor, Sie möchten mit einer bestimmten Gruppe von Prozessen arbeiten. Sie möchten beispielsweise alle Prozesse eines Benutzers auflisten. Das Filtern von Prozessen basierend auf einem Merkmal kann mit dem Befehl ps erfolgen. In diesem Beispiel haben wir die Prozesse basierend auf dem Benutzernamen gefiltert.

ps -u [username]

Filtern von Linux-Prozessen mit dem Befehl ps

Und der Befehl ps aux grep kann die Prozesse basierend auf jedem Muster oder Schlüsselwort filtern, das Sie dem Befehl angeben. Schauen Sie sich den folgenden Code als Beispiel an:

Beispiel für den Befehl „ps aux grep“.

Dieser Befehl listet zunächst alle Prozesse auf und übergibt die Ausgabe an den Befehl grep, um diese lange Liste basierend auf der Prozess-ID zu filtern. Im Bild oben sehen Sie eine Liste aller Prozesse, die in ihren Informationen die Nummer 15 haben.

Weitere Informationen zum ps-Befehl und seinen Funktionen finden Sie in der Handbuchseite dieses Befehls. Der folgende Code zeigt die Handbuchseite für Sie an:

man ps

Verwalten der Aufgabenpriorität unter Linux

Um besser zu erklären, wie die Prozessverwaltung unter Linux tatsächlich funktioniert, sollten wir uns auch mit der Prozesspriorität und deren Änderung befassen. Stellen Sie sich eine Situation vor, in der Sie mehrere Prozesse ausführen und die CPU mit Aufgaben überlastet ist. Wenn Sie Ihre Ressourcen so verwalten möchten, dass sie in dieser Situation ordnungsgemäß funktionieren, müssen Sie die Priorität der ausgeführten Aufgaben ändern. Jeder Prozess unter Linux hat einen Prioritätswert. Dieser Wert hilft dem Kernel, Aufgaben zu priorisieren. Die Prioritätszahl reicht von -20 bis 19, wobei 19 die unwichtigste Aufgabe und -20 die dringendste ist. Der Prozess mit der höchsten Priorität erhält im Vergleich zu anderen Prozessen mehr CPU-Zeit. Die Prioritätswerte werden oft als „nette“ Werte bezeichnet, wobei niedrigere nette Werte eine höhere Priorität anzeigen.

Sie können die Befehle nice und renice verwenden, um Systemressourcen effizient zuzuweisen.

Doch bevor wir die Priorität von Prozessen ändern, schauen wir uns den ersten Anwendungsfall des ps-Befehls an.

  • Anzeige der aktuellen Priorität aller Prozesse mit dem Befehl ps:

Dieser Befehl listet alle Prozesse zusammen mit ihren Prozess-IDs (PID), Befehlsnamen und der aktuellen Priorität (nice value) auf:

 

ps -eo pid,cmd,nice

Ermitteln der Priorität aller Prozesse mit dem Befehl ps

  • Starten Sie einen Prozess mit einer standardmäßig hohen Priorität mit dem Befehl „nice“:

Mit diesem Befehl können Sie einen Prozess mit Ihrer bevorzugten Priorität starten:

nice -n [priority] [command]

Ersetzen Sie [priority] durch den gewünschten negativen Wert, der die Prioritätsstufe darstellt, und [command] durch den Befehl, den Sie ausführen möchten.

Hier ist ein Beispiel:

Starten eines Prozesses mit standardmäßig hoher Priorität

  • Ändern der Priorität eines bereits ausgeführten Befehls:
renice -n [priority] -p [PID]

Ersetzen Sie die Prozess-ID des Prozesses, den Sie bearbeiten möchten, durch [PID].

Wenn Sie einen leistungsstarken Linux-Rechner haben möchten, auf dem Sie alle möglichen Aufgaben ausführen können, a Linux-VPS ist die beste Lösung für Sie. Cloudzy bietet verschiedene Linux-VPS-Pläne mit vorinstallierter Ihrer bevorzugten Distribution an. Mit vielen vorteilhaften Eigenschaften wie 24/7-Support, einer 30-tägigen Geld-zurück-Politik und einer Verfügbarkeitsgarantie von 99,95 % ist es Cloudzy gelungen, die Preise niedrig zu halten. Unsere Preise für Linux VPS beginnen bei nur 4,95 $/Monat.

Linux VPS-Hosting

Holen Sie sich einen kostengünstigen oder Premium-Linux-VPS zum Hosten Ihrer Website oder Ihres Remote-Desktops zum günstigsten Preis. VPS läuft auf Linux KVM für höhere Effizienz und arbeitet auf leistungsstarker Hardware mit NVMe-SSD-Speicher für höhere Geschwindigkeit.

Mehr lesen

Abschluss

Zusammenfassend lässt sich sagen, dass die Beherrschung von Prozessmanagement und Systemsteuerung ein Muss für Systemadministratoren, Linux-Enthusiasten, die mehr lernen möchten, und regelmäßige Linux-Benutzer sind. Das Erlernen der Fähigkeiten und Funktionalitäten des ps-Befehls kann Ihnen den Einstieg in die Prozessverwaltung erleichtern. Aus diesem Grund werden in diesem Artikel wichtige Anwendungsfälle des ps-Befehls besprochen und den Lesern eine Einführung in Linux-Prozesse geboten.

FAQ

Was ist der ps aux-Befehl unter Linux?

Der Linux-Befehl ps aux ist ein unter Linux häufig verwendeter Befehl zum Abrufen von Informationen über laufende Prozesse. Es kann eine umfassende Liste von Prozessen in einem benutzerfreundlichen Format bereitstellen, einschließlich ihrer Prozess-IDs (PIDs), CPU- und Speicherauslastung, Ausführungsstatus und anderen wichtigen Details.

Welche zwei Arten von Prozessen gibt es unter Linux?

Vordergrundprozesse und Hintergrundprozesse. Vordergrundprozesse belegen während der Ausführung das Terminal und lassen keine anderen Ausführungen zu. Hintergrundprozesse laufen im Hintergrund ab und nehmen nicht das gesamte Terminal ein.

Wie kann ich die Liste der Prozesse anzeigen, die auf meinem Linux-System ausgeführt werden?

Die Liste der auf Ihrem Linux-System laufenden Prozesse können Sie mit Befehlen wie ps, top oder htop anzeigen. Beispielsweise liefert der Linux-Befehl ps aux detaillierte Informationen zu allen laufenden Prozessen.

Aktie

Mehr aus dem Blog

Lesen Sie weiter.

Titelbild der besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können, mit App-Panels rund um ein Cosmos-Dashboard.
Server und Betriebssystem

Die besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können: Dateien, Medien, Passwörter, Automatisierung und mehr!

Vielleicht haben Sie Cosmos Cloud eingerichtet und möchten nun sehen, welche Apps gut dazu passen, oder vielleicht haben Sie sich noch nicht einmal für Cosmos entschieden und möchten einfach nur sehen, wie gut es zu Ihrer Arbeit passt

Nick SilverNick Silver 16 Min. Lektüre
Abdeckung von Portainer vs. Cosmos Cloud für die Verwaltung von Docker-Apps mit Hybrid-Setup-Diagramm und Neon-Ops vs. Zugriffsblöcken.
Server und Betriebssystem

Portainer vs. Cosmos Cloud: Beste Lösung für Docker-App-Management

Wenn Sie Docker bereits kennen und nur die sauberere Möglichkeit suchen, einen wachsenden App-Stack auszuführen, finden Sie hier die kurze Antwort auf Portainer vs. Cosmos Cloud. Portainer ist die stärkere Wahl für Direc

Nick SilverNick Silver 14 Min. Lektüre
Die Funktionsgrafik Cosmos Cloud vs. CasaOS vs. Umbrel zeigt drei selbstgehostete Pfade innerhalb einer abstrakten Cloud-Netzwerkwelt.
Server und Betriebssystem

Cosmos Cloud vs. CasaOS vs. Umbrel: Welche selbstgehostete Plattform passt zu Ihrem Setup?

Die kurze Antwort ist, dass CasaOS immer noch der einfachste Ausgangspunkt ist, Umbrel das sauberste kuratierte Gefühl hat und Cosmos Cloud sinnvoller ist, wenn Sie eine strengere Kontrolle über Doma wünschen

Nick SilverNick Silver 11 Min. Lektüre

Bereit zur Bereitstellung? Ab 2,48 $/Monat.

Unabhängige Cloud, seit 2008. AMD EPYC, NVMe, 40 Gbit/s. 14 Tage Geld-zurück-Garantie.