processes unix process control
Prozessverwaltung unter Unix:
Unter Unix werden alle Anweisungen außerhalb des Kernels im Kontext eines Prozesses ausgeführt.
Ein Prozess ist eine Folge von Anweisungen, und jedem Prozess ist ein Block kontrollierter Daten zugeordnet. Prozesse können auf ähnliche Weise bearbeitet werden wie Dateien.
Zum Beispiel, So wie 'ls' verwendet werden kann, um die Liste der Dateien anzuzeigen, kann 'ps' verwendet werden, um die Liste der Prozesse anzuzeigen.
Unix-Video Nr. 23:
In diesem Tutorial werden wir behandeln, welche prozessbezogenen Informationen gespeichert sind, und einige Befehle beschreiben, die zum Verwalten von Prozessen verwendet werden. Wir werden auch eine kurze Beschreibung geben, wie Befehlsskripte debuggt werden können.
Was du lernen wirst:
Unix-Prozessinformationen
Die Prozesstabelle enthält Informationen zu allen aktuell ausgeführten Prozessen. Der Hauptzweck dieser Tabelle besteht darin, alle laufenden Prozesse effektiv zu verwalten.
Ist der Netzwerksicherheitsschlüssel mit dem WLAN-Passwort identisch?
Hinweis: Als Multitasking- und Mehrbenutzer-Betriebssystem werden unter Unix viele Prozesse gleichzeitig ausgeführt.
Die Tabelle enthält Informationen wie:
- Prozess ID
- Übergeordnete Prozess-ID
- Stand der Prozesse
- CPU auslastung
Prozesse in Unix durchlaufen je nach den verschiedenen Umständen verschiedene Zustände. Die Statusänderungen können dadurch ausgelöst werden, ob ein Prozess auf den Abschluss eines Lese- oder Schreibvorgangs warten muss oder ob einem anderen dringlicheren Prozess die Möglichkeit gegeben werden muss, ausgeführt zu werden.
Prozesssteuerungsbefehle
Es gibt eine Reihe von Befehlen, mit denen Prozesse überprüft und bearbeitet werden können. Mit dem Befehl 'ps' können die Prozessstatusinformationen angezeigt werden.
Befehl | ps - gibt Auskunft über alle aktuell laufenden Prozesse. |
---|---|
Gemeinsame Syntax | $ ps (OPTIONEN) |
Beispiel 1 | $ ps Gibt Informationen zum Prozess, einschließlich PID, Terminalname, Erstellungszeitpunkt und Name der Prozesse. |
Wie in einem früheren Lernprogramm erläutert, können Prozesse als Vordergrund, Hintergrund oder Dämon klassifiziert werden. Wenn ein Befehl vom Terminal ausgeführt wird, wird er im Vordergrund normal ausgeführt. Um einen Prozess im Hintergrund auszuführen, kann die Schaltfläche '&' am Ende des Befehls verwendet werden.
Beispiel:
$ grep “how” file1 > file2 &
Dieser Befehl sucht nach den Zeilen, die das Muster „wie“ enthalten, und speichert die Ausgabe in Datei2. Wenn Datei1 relativ groß ist, möchten wir möglicherweise mit anderen Aktionen fortfahren und diesen Befehl im Hintergrund ausführen. Mit dem '&' am Ende wird dieser Befehl als Prozess im Hintergrund ausgeführt.
Es ist möglich, einen Vordergrundprozess mit dem Befehl '^ Z' anzuhalten. Dieser Befehl versetzt den aktuellen Vordergrundprozess in einen angehaltenen Zustand im Hintergrund. Von dort aus kann der Prozess entweder mit dem Befehl 'bg' in den Hintergrund verschoben oder mit dem Befehl 'fg' wieder in den Vordergrund gebracht werden.
Jeder Prozess ist auch mit einer Priorität verbunden. Dies wird verwendet, um sicherzustellen, dass das Betriebssystem in der Lage ist, Zeit für verschiedene Verarbeitungsaufgaben angemessen zuzuweisen. Der Befehl 'nice' kann verwendet werden, um die Priorität eines Prozesses zu verringern und somit für die anderen Prozesse, d. H.
$ nett
In dieser Zeile wird der angegebene Befehl mit einer niedrigeren Priorität ausgeführt. Standardmäßig wird die Priorität um 10 verringert. Der Befehl verwendet auch einen Parameter, mit dem eine andere Stufe der 'Freundlichkeit' verwendet werden kann.
Beispiel:
$ nice -20 ls
Dieser Befehl führt 'ls' mit einer um 20 reduzierten Priorität aus.
Es ist auch möglich, die Priorität mit einer negativen „Freundlichkeit“ zu erhöhen. Dies erfordert jedoch die Superuser-Berechtigung.
Wenn eine Terminal- oder Anmeldesitzung geschlossen wird, sendet sie das SIGHUP-Signal an die untergeordneten Prozesse. Standardmäßig führt dieses Signal dazu, dass die untergeordneten Prozesse beendet werden. Mit dem Befehl 'nohup' können Befehle auch dann weiter ausgeführt werden, wenn die Anmeldesitzung beendet wird.
Beispiel:
$ nohup soft file1 > file2
Mit diesem Befehl wird das Sortieren von Datei1 und das Speichern in Datei2 fortgesetzt, auch wenn wir uns vom System abgemeldet haben.
Der Befehl 'kill' kann verwendet werden, um einen der Prozesse abhängig von den Berechtigungen zu beenden.
Beispiel:
$ kill (options)
Dieser Befehl beendet einen Prozess mit der Prozess-ID. Die PID eines Prozesses kann mit dem Befehl 'ps' ermittelt werden.
Dieser 'at' -Befehl wird verwendet, um Befehle zu einem bestimmten Datum und einer bestimmten Uhrzeit in der Zukunft auszuführen.
Beispiel:
$ at 8pm sort file1>file2
Unix-Debugging
Unix bietet eine Reihe von Mechanismen, mit denen Sie Fehler in Ihren Befehlsskripten finden können. Diese Mechanismen können verwendet werden, um eine Spur dessen anzuzeigen, was ausgeführt wird, d. H. Die Reihenfolge, in der Befehle ausgeführt werden. Der Trace kann verwendet werden, um die Logik und den Kontrollfluss des Skripts zu verstehen und zu überprüfen.
=> setze -v
ausführlicher Modus: Durch Festlegen dieser Option vor dem Ausführen eines Befehls wird sichergestellt, dass der auszuführende Befehl auf stdout gedruckt wird, bevor er tatsächlich ausgeführt wird.
=> setze -x
Ausführungs-Trace-Modus: Wenn Sie diese Option festlegen, wird jeder Befehl bei seiner Ausführung zusammen mit seinen Argumenten angezeigt.
=> setze -n
No-Exec-Modus: Wenn Sie diese Option einstellen, werden alle Fehler angezeigt, ohne dass Befehle ausgeführt werden.
In unserem kommenden Tutorial erfahren Sie mehr darüber Erweitertes Shell-Scripting.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Steuerbefehle für Unix-Prozesse wie Ps und Top (Teil C)
- Unix-Befehle: Grundlegende und erweiterte Unix-Befehle mit Beispielen
- Unix-Textverarbeitungsbefehle: Unix-Filter mit Beispielen
- Unix Pipes Tutorial: Pipes in der Unix-Programmierung
- Weitere Unix Filter- und Awk, Sed-Befehle in der Textverarbeitung
- Befehlszeilenargumente in Unix Shell Script mit Beispiel
- UNIX-Tutorial für Anfänger (über 20 ausführliche Unix-Schulungsvideos)
- So vergleichen Sie zwei Dateien unter Unix: Dateivergleichsbefehle