Alles, was Sie über Prozesse unter Linux wissen müssen [umfassende Anleitung]
- 3135
- 705
- Miriam Bauschke
In diesem Artikel werden wir ein grundlegendes Verständnis von Prozessen durchlaufen und kurz untersuchen, wie Prozesse unter Linux mit bestimmten Befehlen verwaltet werden.
A Verfahren bezieht sich auf ein Programm in der Ausführung; Es ist eine laufende Instanz eines Programms. Es besteht aus der Programmanweisung, den Daten aus Dateien, anderen Programmen oder Eingaben eines Systembenutzers.
Arten von Prozessen
Grundsätzlich gibt es zwei Arten von Prozessen unter Linux:
- Vordergrundprozesse (auch als interaktive Prozesse bezeichnet) - diese werden initialisiert und über eine Terminalsitzung kontrolliert. Mit anderen Worten, es muss einen Benutzer geben, der mit dem System verbunden ist, um solche Prozesse zu starten. Sie haben im Rahmen der Systemfunktionen/-dienste nicht automatisch begonnen.
- Hintergrundprozesse (Auch als nicht interaktive/automatische Prozesse bezeichnet) - sind Prozesse, die nicht mit einem Terminal verbunden sind; Sie erwarten keine Benutzereingabe.
Was ist Dämonen
Dies sind spezielle Arten von Hintergrundprozessen, die beim Systemstart beginnen und für immer als Service ausgeführt werden. Sie sterben nicht. Sie werden als Systemaufgaben (als Dienste ausgeführt) spontan gestartet. Sie können jedoch von einem Benutzer über den Init -Prozess gesteuert werden.
Linux -ProzesszustandErstellung eines Prozesses unter Linux
Normalerweise wird ein neuer Prozess erstellt, wenn ein vorhandener Prozess eine genaue Kopie von sich selbst im Speicher erstellt. Der Kinderprozess hat die gleiche Umgebung wie seine Eltern, aber nur die Prozess -ID -Nummer ist unterschiedlich.
Es gibt zwei konventionelle Möglichkeiten, um einen neuen Prozess unter Linux zu erstellen:
- Verwenden der Funktion System () - Diese Methode ist relativ einfach, ist jedoch ineffizient und weist erheblich bestimmte Sicherheitsrisiken auf.
- Verwenden von fork () und exec () Funktion - Diese Technik ist etwas fortschrittlich, bietet aber eine größere Flexibilität und Geschwindigkeit zusammen mit Sicherheit.
Wie identifiziert Linux Prozesse?
Da Linux ein Multi-Benutzer-System ist, was bedeutet.
Und ein Programm wird durch seine Prozess -ID (identifiziertPID) ebenso wie es handeltPpid), daher können Prozesse weiter kategorisiert werden in:
- Elternprozesse - Dies sind Prozesse, die während der Laufzeit andere Prozesse erstellen.
- Kinderprozesse - Diese Prozesse werden von anderen Prozessen während der Laufzeit erstellt.
Der Init -Prozess
Drin Prozess ist die Mutter (Eltern) aller Prozesse auf dem System. Es ist das erste Programm, das ausgeführt wird, wenn sich das Linux -System startet. Es verwaltet alle anderen Prozesse auf dem System. Es wird vom Kernel selbst gestartet, so dass es im Prinzip keinen übergeordneten Prozess hat.
Der Init -Prozess hat immer eine Prozess -ID von 1. Es fungiert als Adoptivelternteil für alle verwaisten Prozesse.
Du kannst den ... benutzen PIDOF -Befehl Um die ID eines Prozesses zu finden:
# PIDOF SYSTEMD # PIDOF TOP # PIDOF HTTPDFinden Sie Linux -Prozess -ID
Ausführen:
$ echo $$ $ echo $ ppidFinden Sie Linux übergeordnete Prozess -Prozess -ID
Einen Prozess unter Linux starten
Sobald Sie einen Befehl oder ein Programm ausgeführt haben (z. B. CloudCMD - CloudCommander), startet er einen Prozess im System. Sie können einen Vordergrundprozess (interaktiv) wie folgt starten, er wird mit dem Terminal verbunden und ein Benutzer kann die Eingabe senden:
# CloudCMDStarten Sie den interaktiven Linux -Prozess
Linux -Hintergrundjobs
Verwenden Sie das, um einen Prozess im Hintergrund (nicht interaktiv) zu starten &
Symbol, hier liest der Vorgang die Eingabe eines Benutzers erst dann, wenn er in den Vordergrund verschoben wird.
# CloudCMD & # JobsStarten Sie den Linux -Prozess im Hintergrund
Sie können auch einen Vorgang an den Hintergrund senden, indem Sie ihn mithilfe von Verwendung einsetzen [Strg + z]
, Dies wird die senden Sigstop Signal auf den Prozess und stoppen so seine Operationen; Es wird untätig:
# tar -cf Backup.Teer /Backups /* #press Strg+z # Arbeitsplätze
Verwenden Sie die über den oben ausgewählte Befehl im Hintergrund weiter ausführende Befehl BG Befehl:
# BG
Verwenden Sie das, um einen Hintergrundprozess in den Vordergrund zu senden, die fg Befehl zusammen mit der Job -ID wie SO:
# Jobs # fg %1Linux -Hintergrundprozessjobs
Sie können auch mögen: So starten Sie den Befehl Linux im Hintergrund- und Abschlussprozess im Terminal
Zustände eines Prozesses unter Linux
Während der Ausführung ändert sich ein Prozess je nach Umgebung/Umständen von einem Staat zu einem anderen. In Linux hat ein Prozess die folgenden möglichen Zustände:
- Betrieb - Hier wird entweder ausgeführt (es ist der aktuelle Prozess im System) oder es ist bereit zu laufen (es wartet darauf, einem der CPUs zugeordnet zu werden).
- Warten - In diesem Zustand wartet ein Prozess auf ein Ereignis oder auf eine Systemressource. Darüber hinaus unterscheidet der Kernel auch zwischen zwei Arten von Warte Prozessen; Interruptible Warteverfahren - können durch Signale und ununterbrochene Warteverfahren unterbrochen werden - warten direkt auf Hardwarebedingungen und können nicht durch ein Ereignis/Signal unterbrochen werden.
- Gestoppt - In diesem Zustand wurde ein Prozess gestoppt, normalerweise durch Erhalt eines Signals. Zum Beispiel ein Prozess, der debugged wird.
- Zombie - Hier ist ein Prozess tot, er wurde gestoppt, aber er hat immer noch einen Eintrag in der Prozess Tabelle.
So sehen Sie aktive Prozesse unter Linux
Es gibt mehrere Linux -Tools zum Anzeigen/Auflistungsauflisten auf dem System
1. PS -Befehl
Es zeigt Informationen zu einer Auswahl der aktiven Prozesse auf dem System, wie unten gezeigt:
# PS # ps -e | KopfListen Sie Linux Active -Prozesse auf
2. Top - Systemüberwachungstool
TOP ist ein leistungsstarkes Tool, das Ihnen eine dynamische Echtzeitansicht eines laufenden Systems bietet, wie im folgenden Screenshot gezeigt:
# SpitzeListen Sie Linux -Auslaufprozesse auf
Lesen Sie dies für weitere Beispiele für Top -Nutzungen: 12 Top -Befehlsbeispiele unter Linux
3. Blicke - Systemüberwachungstool
Blicke ist ein relativ neues Systemüberwachungstool mit erweiterten Funktionen:
# BlickeBlicke - Linux -Prozessüberwachung
Für einen umfassenden Verwendungshandbuch lesen Sie: Blend - ein fortschrittliches Echtzeit -Systemüberwachungstool für Linux
Es gibt mehrere andere nützliche Linux -Systemüberwachungstools, mit denen Sie aktive Prozesse auflisten können. Öffnen Sie den folgenden Link, um mehr darüber zu erfahren:
- 20 Befehlszeilen -Tools zur Überwachung der Linux -Leistung
- 13 weitere nützliche Linux -Überwachungstools
Wie man Prozesse unter Linux steuert
Linux hat auch einige Befehle für die Kontrolle von Prozessen wie Kill, PKill, PGREP und Killall. Nachfolgend finden Sie einige grundlegende Beispiele für die Verwendung:
$ pGrep -u Tecmint Top $ Kill 2308 $ PGREP -U TECMINT TOPSteuerung von Linux -Prozessen steuern
Um zu erfahren, wie Sie diese Befehle ausführlich verwenden, um aktive Prozesse unter Linux abzutöten/zu beenden, öffnen Sie die folgenden Links:
- Eine Anleitung zum Töten, Pkill- und Killall -Befehlen zur Beendigung von Linux Processess
- So finden und töten Sie Laufprozesse unter Linux
Beachten Sie, dass Sie sie verwenden können, um nicht reagierende Anwendungen in Linux zu töten, wenn Ihr System gefriert.
Senden von Signalen an Prozesse senden
Die grundlegende Möglichkeit, Prozesse unter Linux zu kontrollieren, besteht darin, ihnen Signale zu senden. Es gibt mehrere Signale, die Sie an einen Prozess senden können, um alle Signale auszuführen:
$ Kill -lListen Sie alle Linux -Signale auf
Um ein Signal an einen Prozess zu senden, verwenden Sie die Befehle Kill, PKill oder PGREP, die wir zuvor erwähnt haben. Programme können jedoch nur auf Signale reagieren, wenn sie programmiert sind, um diese Signale zu erkennen.
Und die meisten Signale dienen zum internen Gebrauch durch das System oder für Programmierer, wenn sie Code schreiben. Im Folgenden finden Sie Signale, die für einen Systembenutzer nützlich sind:
- Seufzer 1 - an einen Prozess gesendet, wenn sein Steuerterminal geschlossen ist.
- SIGINT 2 - gesendet an einen Prozess durch sein Steuerterminal, wenn ein Benutzer den Prozess durch Drücken unterbricht
[Strg+C]
. - Sigquit 3 - An einen Prozess gesendet, wenn der Benutzer ein Kündigungssignal sendet
[Strg+D]
. - Sigkill 9 - Dieses Signal endet sofort (Kills) und der Prozess führt keine Aufräumvorgänge durch.
- Sigterm 15 - Dies ist ein Programmabschlusssignal (Kill wird dies standardmäßig senden).
- SIGTSTP 20 - von seinem Kontrollanschluss an einen Prozess gesendet, um ihn zu beantragen (Terminal Stopp); vom Benutzer gedrückt initiiert
[Strg+z]
.
Die folgenden Beispiele für Kill Commands, um die Firefox -Anwendung mit seiner PID zu töten, sobald sie gefriert:
$ PIDOF Firefox $ Kill 9 2687 oder $ Kill -Kill 2687 oder $ Kill -Sigkill 2687
Um eine Anwendung mit ihrem Namen zu töten, verwenden Sie Pkill oder Killall wie SO:
$ pkill Firefox $ Killall Firefox
Änderung der Linux -Prozesspriorität
Auf dem Linux -System haben alle aktiven Prozesse eine Priorität und einen bestimmten netten Wert. Prozesse mit höherer Priorität erhalten normalerweise mehr CPU -Zeit als mit niedrigeren Prioritätsprozessen.
Ein Systembenutzer mit Stammberechtigungen kann dies jedoch mit dem beeinflussen Hübsch Und Renice Befehle.
Aus der Ausgabe des oberen Befehls zeigt der NI den guten Wert an:
$ topListen Sie Linux -Auslaufprozesse auf
Verwenden Sie das Hübsch Befehl, um einen guten Wert für einen Prozess festzulegen. Denken Sie daran, dass normale Benutzer einen guten Wert von null bis 20 auf Prozesse zuschreiben können, die sie besitzen.
Nur der Root -Benutzer kann negative nette Werte verwenden.
Zu Renice Die Priorität eines Prozesses verwenden Sie die Renice Befehl wie folgt:
$ renice +8 2687 $ renice +8 2103
Schauen Sie sich unsere nützlichen Artikel zur Verwaltung und Steuerung von Linux -Prozessen an.
- Linux -Prozessverwaltung: Boot, Herunterfahren und alles dazwischen
- Finden Sie die 15 Top -15 -Prozesse nach Speicherverbrauch mit "Top" im Stapelmodus
- Finden Sie Top -Laufprozesse nach dem höchsten Speicher und der CPU -Verwendung unter Linux
- So finden Sie einen Prozessnamen mit der PID -Nummer unter Linux
Das ist alles fürs Erste! Haben Sie Fragen oder zusätzliche Ideen, teilen Sie sie mit uns über das Feedback -Formular unten mit.
- « So führen Sie Selbstheilungs- und Neuausgleichsvorgänge im Gluster-Dateisystem aus-Teil 2
- So aktivieren Sie das Teilen von Desktops in Ubuntu und Linux Mint »