LPIC101/103.5 Prozesse erzeugen, überwachen und beenden: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Andreasroith (Diskussion | Beiträge)
Zeile 16: Zeile 16:
> Signale an Prozesse schicken
> Signale an Prozesse schicken


Überwachen von Prozessen
 
Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
 
* &
 
* bg
 
* fg
 
* jobs
 
* kill
 
* nohup
 
* ps
 
* top
 
* free
 
* uptime
 
* pgrep
 
* pkill
 
* killall
 
* watch
 
* screen
 
* tmux
 
 
==== Überwachen von Prozessen ====


Mit dem Kommando ps
Mit dem Kommando ps
können Sie die aktuell auf einem Computer laufenden Pro-
können Sie die aktuell auf einem Computer laufenden Prozesse anzeigen. Es handelt sich um eine Momentaufnahme. Programme mit kurzer Lebensdauer (z. B. df), werden mit ps nicht anzeigt. Das Kommando ps ohne Optionen ausführen, erhalten Sie eine Liste der Prozesse, die auf dem aktuellen Terminal laufen. Wenn Jobs im Hintergrund laufen (o. stehen), werden diese auch angezeigt.
zesse anzeigen. Es handelt sich hierbei allerdings lediglich um eine Momentaufnahme. Programme, die über eine kurze Lebensdauer verfügen (z. B.  
 
df), werden Sie mit ps nicht anzeigen können. Wenn Sie das Kommando  
* -a zeigt auch die Prozesse anderer Benutzer an. Voraussetzung ist, dass diese Prozesse mit einem Terminal verknüpft sind.
ps ohne Optionen ausführen, erhalten Sie lediglich eine Liste der Prozesse, die auf dem aktuellen Terminal laufen. Das sind in der Regel nur die Shell und das ps
 
Kommando selbst. Wenn Jobs im Hintergrund laufen (oder stehen), werden diese auch angezeigt. Sie können bei der Übergabe von Optionen einen Strich voranstellen oder auch nicht. In Abhängigkeit von der verwendeten Programm
* -u zeigt auch die Startzeit, den Pfad zur ausführbaren Datei und den ausführenden Benutzer an.
version werden Sie zu unterschiedlichen Ergebnissen kommen. Nach der UNIX-Syntax wird der Option ein Strichvorangestellt, während nach BSD-Syntax kein Strich verwendet wird. GNU-Optionen sind wiederum die
 
ausgeschriebenen langen Optionen. Diesen werden zwei Striche vorangestellt. Am
* -x führt auch die Prozesse auf, die nicht mit einem Terminal verbunden sind (z. B.init oder cron).
besten lesen Sie im Zweifelsfall immer in der Manpage der gerade verwendeten Version von ps nach. Optionen können, wie bei den meisten Programmen, nach Belieben kombiniert werden. Folgende Optionen sind sowohl für die Prüfung als auch für die Praxis wichtig:
 
* -C "prozess" sorgt  für  die  Ausgabe  aller  Instanzen  eines  auf  der Kommandozeile angegebenen Prozesses.
 
* -U "benutzer" zeigt die Prozesse eines bestimmten Benutzers an.
 
 
* top Mit top können Sie die auf einem Computer laufenden Prozesse in Echtzeit überwachen. Während der Ausführung werden die folgenden Informationen dynamisch im Terminal ausgegeben:
 
allgemeine Informationen, wie Uhrzeit, Uptime, Anzahl der angemeldeten Benutzer, durchschnittliche Systemauslastung
 
Tasks:  Anzahl  der  Prozesse  insgesamt,  laufende  Prozesse,  schlafende  Prozesse, gestoppte Prozesse und Zombie-Prozesse
 
CPU(s):  Benutzung  durch  Benutzerprozesse,  Systemprozesse,  den  Idle-Prozess u. a.
 
Mem: Speicher insgesamt, in Verwendung, freier Speicher und für Buffers verwendeter Speicher
 
Swap: diverse Werte zur Verwendung der Swap-Partition(en)Anschließend folgt eine Auflistung der laufenden Prozesse. Diese werden standardmäßig in Reihenfolge der CPU-Verwendung ausgegeben. Die inaktiven Prozesse werden anschließend  in  der  Reihenfolge der PIDs ausgegeben.  Beachten  Sie  bitte, dass das Programm
top selbst auch Systemressourcen belegt und deshalb das Messergebnis beeinflusst
 
 
 
 
 
Wichtige Interaktivoptionen:
 
* k (kill) tötet einen Prozess. Es müssen sowohl die PID als auch das Signal angegeben werden.
 
* n (number of) nennt die Anzahl der Zeilen, die top ausgibt.
 
* r (renice) ändert den Nice-Wert eines Prozesses zur Laufzeit.
 
* h (help) gibt eine Hilfe aus.
 
* q (quit) beendet das Programm.
 
Wichtige Kommandozeilenoptionen:
 
* -i zeigt nur die Prozesse an, die aktiv sind. Schlafende Prozesse werden ignoriert.
 
* -b (batch) kann in Kombination mit einem Redirektor verwendet werden, um die Ausgabe in eine Textdatei umzuleiten.
 
* -d (delay) gibt das Aktualisierungsintervallin Sekunden an. Der Standardwert ist eine Sekunde.
 
* -q startet top mit Echtzeitausgabe (wird nicht von allen Versionen des Programms unterstützt).
 
* watch Ein sehr nützlicher Helfer ist das Programm watch. Sie können es immer dann einsetzen,  wenn  ein  anderes  Programm  eine  Ausgabe  auf  dem  Terminal  macht  und  sich dann wieder beendet. Vielleicht wollen Sie z. B. Dateien dabei beobachten, wie diese ihre Größe ändern, während sie kopiert oder von dd erzeugt werden. Es gibt viele Situationen, in denen man mehrfach dasselbe Kommando gibt, um etwas zu beobachten.
 
 
 
==== Signale an Prozesse senden ====
 
Wenn Sie einen Prozess zur Laufzeit beeinflussen wollen, können Sie diesem Prozessein Signal senden. Es gibt insgesamt 64 verschiedene Signale. Die gute Nachricht ist, dass  Sie  nicht  alle  Signale  für  die  Prüfung  kennen  müssen.  Sie erhalten  eine  Auflistung aller Signale, wenn Sie das folgende Kommando ausführen:
archangel:~ # kill -l
1) SIGHUP      2) SIGINT      3) SIGQUIT      4) SIGILL
5) SIGTRAP      6) SIGABRT      7) SIGBUS      8) SIGFPE
9) SIGKILL    10) SIGUSR1    11) SIGSEGV    12) SIGUSR2
... weitere Zeilen wurden abgeschnitten ...
Die  folgenden  Signale  werden häufig  (auch manuell)  an  Prozesse  übermittelt. Sie sind sowohl für die Praxis als auch für die Prüfung von Interesse:
1 bzw. SIGHUP ist das Hang-up-Signal, das ursprünglich Modems zum Auflegen veranlasste. Es wird auch benutzt, um Prozesse, die als Daemons laufen (bind, squidusw.), zu veranlassen, ihre Konfigurationsdateien neu einzulesen.
 
9 bzw. SIGKILL beendet einen Prozess mit Gewalt. Dieses Signal sollte nur in Notfällen verwendet werden, wenn Signal 15 kein Ergebnis bringt. Ein mit SIGKILL beendeter Prozess räumt nicht auf (temporäre Dateien usw.).
 
15 SIGTERM fordert einen Prozess auf, sich selbst zu beenden. Der Prozess erhält die Gelegenheit, Aufräumaktivitäten durchzuführen. Weitere Signale, die häufig vorkommen, aber über Umwege an den Prozess gesendet werden, sind folgende: 2 bzw. SIGINT führt einen Programmabbruch aus. SIGINT wird gesendet, wenn die Tastenkombination (Strg) + (C) betätigt wird.
 
18 bzw. SIGCONT setzt einen Prozess fort, der zuvor mit SIGSTOP angehalten wurde.
Das Signal SIGCONT wird durch die Kommandos fg und bg gesendet, die im nächsten Abschnitt behandelt werden.
 
19 bzw. SIGSTOP hält einen Prozess an. Der Prozess kann später mit SIGCONT fortgesetzt werden.
 
20 bzw. SIGTSTP hält  einen  Prozess  an.  Der  Prozess  bleibt  speicherresident  und kann mit SIGCONT
fortgesetzt werden. Die Tastenkombination (Strg) + (Z) sendet dieses Signal.
 
 
 
 
 
 
 
 





Version vom 15. November 2019, 10:10 Uhr

Ziel: Erlernen die einfache Prozessverwaltung zu beherrschen.

Wichtigste Wissensgebiete:

> Jobs im Vordergrund und im Hintergrund ablaufen lassen

> einem Programm signalisieren, dass es nach dem Abmelden weiterlaufen soll

> Prozesse erzeugen, überwachen und beenden


> aktive Prozesse beobachten

> Prozesse zur Ausgabe auswählen und sortieren

> Signale an Prozesse schicken


Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

  • &
  • bg
  • fg
  • jobs
  • kill
  • nohup
  • ps
  • top
  • free
  • uptime
  • pgrep
  • pkill
  • killall
  • watch
  • screen
  • tmux


Überwachen von Prozessen

Mit dem Kommando ps können Sie die aktuell auf einem Computer laufenden Prozesse anzeigen. Es handelt sich um eine Momentaufnahme. Programme mit kurzer Lebensdauer (z. B. df), werden mit ps nicht anzeigt. Das Kommando ps ohne Optionen ausführen, erhalten Sie eine Liste der Prozesse, die auf dem aktuellen Terminal laufen. Wenn Jobs im Hintergrund laufen (o. stehen), werden diese auch angezeigt.

  • -a zeigt auch die Prozesse anderer Benutzer an. Voraussetzung ist, dass diese Prozesse mit einem Terminal verknüpft sind.
  • -u zeigt auch die Startzeit, den Pfad zur ausführbaren Datei und den ausführenden Benutzer an.
  • -x führt auch die Prozesse auf, die nicht mit einem Terminal verbunden sind (z. B.init oder cron).
  • -C "prozess" sorgt für die Ausgabe aller Instanzen eines auf der Kommandozeile angegebenen Prozesses.
  • -U "benutzer" zeigt die Prozesse eines bestimmten Benutzers an.


  • top Mit top können Sie die auf einem Computer laufenden Prozesse in Echtzeit überwachen. Während der Ausführung werden die folgenden Informationen dynamisch im Terminal ausgegeben:

allgemeine Informationen, wie Uhrzeit, Uptime, Anzahl der angemeldeten Benutzer, durchschnittliche Systemauslastung

Tasks: Anzahl der Prozesse insgesamt, laufende Prozesse, schlafende Prozesse, gestoppte Prozesse und Zombie-Prozesse

CPU(s): Benutzung durch Benutzerprozesse, Systemprozesse, den Idle-Prozess u. a.

Mem: Speicher insgesamt, in Verwendung, freier Speicher und für Buffers verwendeter Speicher

Swap: diverse Werte zur Verwendung der Swap-Partition(en)Anschließend folgt eine Auflistung der laufenden Prozesse. Diese werden standardmäßig in Reihenfolge der CPU-Verwendung ausgegeben. Die inaktiven Prozesse werden anschließend in der Reihenfolge der PIDs ausgegeben. Beachten Sie bitte, dass das Programm top selbst auch Systemressourcen belegt und deshalb das Messergebnis beeinflusst



Wichtige Interaktivoptionen:

  • k (kill) tötet einen Prozess. Es müssen sowohl die PID als auch das Signal angegeben werden.
  • n (number of) nennt die Anzahl der Zeilen, die top ausgibt.
  • r (renice) ändert den Nice-Wert eines Prozesses zur Laufzeit.
  • h (help) gibt eine Hilfe aus.
  • q (quit) beendet das Programm.

Wichtige Kommandozeilenoptionen:

  • -i zeigt nur die Prozesse an, die aktiv sind. Schlafende Prozesse werden ignoriert.
  • -b (batch) kann in Kombination mit einem Redirektor verwendet werden, um die Ausgabe in eine Textdatei umzuleiten.
  • -d (delay) gibt das Aktualisierungsintervallin Sekunden an. Der Standardwert ist eine Sekunde.
  • -q startet top mit Echtzeitausgabe (wird nicht von allen Versionen des Programms unterstützt).
  • watch Ein sehr nützlicher Helfer ist das Programm watch. Sie können es immer dann einsetzen, wenn ein anderes Programm eine Ausgabe auf dem Terminal macht und sich dann wieder beendet. Vielleicht wollen Sie z. B. Dateien dabei beobachten, wie diese ihre Größe ändern, während sie kopiert oder von dd erzeugt werden. Es gibt viele Situationen, in denen man mehrfach dasselbe Kommando gibt, um etwas zu beobachten.


Signale an Prozesse senden

Wenn Sie einen Prozess zur Laufzeit beeinflussen wollen, können Sie diesem Prozessein Signal senden. Es gibt insgesamt 64 verschiedene Signale. Die gute Nachricht ist, dass Sie nicht alle Signale für die Prüfung kennen müssen. Sie erhalten eine Auflistung aller Signale, wenn Sie das folgende Kommando ausführen: archangel:~ # kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 ... weitere Zeilen wurden abgeschnitten ... Die folgenden Signale werden häufig (auch manuell) an Prozesse übermittelt. Sie sind sowohl für die Praxis als auch für die Prüfung von Interesse: 1 bzw. SIGHUP ist das Hang-up-Signal, das ursprünglich Modems zum Auflegen veranlasste. Es wird auch benutzt, um Prozesse, die als Daemons laufen (bind, squidusw.), zu veranlassen, ihre Konfigurationsdateien neu einzulesen.

9 bzw. SIGKILL beendet einen Prozess mit Gewalt. Dieses Signal sollte nur in Notfällen verwendet werden, wenn Signal 15 kein Ergebnis bringt. Ein mit SIGKILL beendeter Prozess räumt nicht auf (temporäre Dateien usw.).

15 SIGTERM fordert einen Prozess auf, sich selbst zu beenden. Der Prozess erhält die Gelegenheit, Aufräumaktivitäten durchzuführen. Weitere Signale, die häufig vorkommen, aber über Umwege an den Prozess gesendet werden, sind folgende: 2 bzw. SIGINT führt einen Programmabbruch aus. SIGINT wird gesendet, wenn die Tastenkombination (Strg) + (C) betätigt wird.

18 bzw. SIGCONT setzt einen Prozess fort, der zuvor mit SIGSTOP angehalten wurde. Das Signal SIGCONT wird durch die Kommandos fg und bg gesendet, die im nächsten Abschnitt behandelt werden.

19 bzw. SIGSTOP hält einen Prozess an. Der Prozess kann später mit SIGCONT fortgesetzt werden.

20 bzw. SIGTSTP hält einen Prozess an. Der Prozess bleibt speicherresident und kann mit SIGCONT fortgesetzt werden. Die Tastenkombination (Strg) + (Z) sendet dieses Signal.