Linux Bibel online ~ Prozessverwaltung

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Wie unter Microsoft Windows laufen auch unter Linux schon ohne das der Nutzer eine Anwendung startet eine ganze Menge an Prozessen damit das Betriebssystem und die Desktop-Umgebung ihre Arbeit tun können. Manchmal kommt es natürlich auch unter Linux dazu das sich eine Anwendung aufhängt und einfach nicht mehr reagiert - was tut man in einem solchen Fall oder wenn der Rechner auf Dauer mit hoher Last läuft ohne das man versteht warum? Ganz einfach, man sucht die Anwendung und beendet diese wenn nötig.

Manchmal will man sich auch einfach nur informieren welche Prozesse - also Anwendungen wirklich laufen, um solche Dinge kümmern wir uns nun in diesem Beitrag.

Grafisch

Die großen Desktop-Umgebungen wie etwa KDE, GNOME oder Unity bringen bereits die nötige grafische Software mit, suchen Sie im Anwendungsmenü im Bereich "System", so findet sich etwa unter KDE die Software Ksysguard die Sie alternativ auch per Schnellstarter (Alt + F2) oder über das Terminal durch den Befehl:

ksysguard

starten:

Prozess-Verwaltung unter Linux - Ksysguard

Prozess-Verwaltung unter Linux - Ksysguard

Ganz zu Beginn finden Sie den Namen des Prozesses, den Namen des Nutzers der diesen gestartet hat, die Auslastung der CPU und den Speicher den die Anwendung im RAM (Hauptspeicher) belegt, zuletzt sehen Sie die Bezeichnung des Fensters wenn die Anwendung in einem geöffneten Fenster zu finden ist. Klickt man auf den Reiter Systemlast finden Sie die selben Daten - jedoch ohne Namen der Prozesse grafisch aufbereitet. Über das Menü "Datei / Neues Arbeitsblatt" lassen sich weitere Ansichten selbst zusammen stellen, vergeben Sie einen Namen für den neuen Reiter und Sie können nun beliebige Daten auf das neue Blatt ziehen:

Prozess-Verwaltung unter Linux - Ksysguard

Prozess-Verwaltung unter Linux - Ksysguard

Auf der Prozesstabelle hingegen finden Sie nicht nur Informationen über laufende Prozesse - Sie können diese indem Sie einen rechts anklicken über das Kontextmenü beenden oder andere Signale senden (dazu später mehr):

Prozess-Verwaltung unter Linux - Ksysguard

Prozess-Verwaltung unter Linux - Ksysguard

Sie können natürlich nur Prozesse beenden oder deren Priorität ändern, diesen Signale senden wenn Sie diese selbst gestartet haben, oder diese Ihrer Desktop-Umgebung zugeordnet sind, andernfalls müssen Sie bei Nachfrage das "root"-Passwort angeben. Ähnlich grafische Software finden Sie wie schon beschrieben unter allen größeren Desktop-Umgebungen.

Hier etwa die GNOME-System-Überwachung (gnome-system-monitor):

Prozess-Verwaltung unter Linux - GNOME-System-Monitor

Prozess-Verwaltung unter Linux - GNOME-System-Monitor

Auf dem Terminal

Auch auf dem Terminal ist die Prozess-Steuerung natürlich möglich, als erstes wollen wir uns gleich einmal die laufenden Prozesse ansehen, dazu dient ganz einfach der Befehl:

top

Prozess-Verwaltung unter Linux - Top am Terminal

Prozess-Verwaltung unter Linux - Top am Terminal

Angezeigt wird zu Beginn die Prozess-ID die für jeden Prozess einmalig ist, dann folgt der Nutzer unter dessen Rechten dieser Prozess läuft. Anschließend findet sich die Priorität unter der der Prozess läuft (je höher die Zahl desto niedriger die Priorität), Angaben über den genutzten Speicher, CPU-Last und Auslastung des Hauptspeichers (RAM) sowie der eigentliche Namen des Prozesses. Die Ausgabe von Top läuft live weiter, mittels der Tastenkombination "Strg + C" beenden Sie die Software.

Da die Ausgabe von Top ständig aktualisiert wird ist es manchmal sinnvoller einfach eine Momentaufnahme des System-Zustandes anzeigen zu lassen, dies lässt sich über den Befehl:

ps aux

realisieren:

Prozess-Verwaltung unter Linux - Terminal

Prozess-Verwaltung unter Linux - Terminal

Statt also immer aktuelle Werte zu sehen erhalten Sie so eine Aufnahme über den Zustand des Systems zur Zeit der Erhebung.

Viele Prozesse unter Linux hängen von einander ab, welche dies sind zeigt uns der Befehl:

pstree

Prozess-Verwaltung unter Linux - Pstree am Terminal

Prozess-Verwaltung unter Linux - Pstree am Terminal

Man erhält somit eine grafische Baum-Ansicht über die laufenden Prozesse mit ihren Abhängigkeiten.

Wir kennen nun durch mehrere jetzt bekannte Befehle die Prozess-ID beliebiger Prozesse, diese benötigen wir um einen einzelnen Prozess zu beenden. Nehmen wir einmal an Firefox läuft Amok und wir wollen diesen auf dem Terminal beenden und dieser hat die Prozess-ID "28243" - wir beenden diesen nun ganz einfach durch den Befehl:

kill 28243

Wie zuvor gilt - Prozesse anderer Nutzer - etwa vom Nutzer "root" kann man auch nur mit dessen Rechten beenden, in diesem Fall also als Nutzer "root".

Nun gibt es aber auch Prozesse die von einander abhängen wie wir schon gehört haben, ich nehme jetzt einfach den Prozess "dolphin" - den Dateimanager von KDE, es muss nicht der Prozess "dolphin" sein der Probleme bereitet auch wenn der Dateimanager nicht reagiert - es könnte also ganz einfach einer der Prozesse sein die Dolphin benötigt um zu funktionieren. Würde man Dolphin beenden, genau diesen Prozess aber nicht hilft alles nichts, man muss also alle Prozesse beenden die mit diesem zu tun haben - in diesem Fall benötigen wir keine Prozess-ID sondern nur den Namen des Prozesses, in diesem Fall also "dolphin":

killall dolphin

Etwas weiter oben haben wir schon von Signalen gelesen, diese dienen dazu Prozesse genauer zu steuern und gehören zum Befehl "kill". Nun wollen wir uns ganz einfach einmal alle Signale ansehen - dies erreichen wir durch den Befehl:

kill -l

Prozess-Verwaltung unter Linux - kill-Signale

Prozess-Verwaltung unter Linux - kill-Signale

Ganz schön viele, die meisten werden aber niemals benötigt, auf jedem Fall sehen Sie vor jedem Signal eine Ziffer, dies ist die Kurzfassung. Die wichtigsten sind wohl SIGTERM (15) - damit sagt man dem Prozess er soll versuchen sich normal zu beenden um so etwa noch nicht gespeicherte Daten noch zu sichern, SIGKILL (9) - den Prozess auf jeden Fall beenden auch wenn dadurch nicht gespeicherte Daten verloren gehen, SIGSTOP (19) - den Prozess pausieren und SIGCONT (18) - einen pausierenden Prozess weiter laufen lassen. Nun möchte ich beispielsweise "dolphin" auf jeden Fall beenden:

kill 9 dolphin

Priorität ändern

Unter Linux laufen Prozesse wie unter Microsoft Windows in unterschiedlicher Priorität, dies bedeutet nichts anderes als dann ein Prozess wichtiger ist als der andere - der eine bekommt also mehr Zeit an der CPU als der andere. Der wichtigste Prozess unter Linux ist daher natürlich "linux" der Kernel, er läuft unter höchster Priorität - was man auch nicht ändern sollte, stellt man eine weitere Anwendung auf die selbe Priorität steht die Kiste wie ein sturer Esel.
Wie immer wichtig - man kann nur die Priorität von Prozessen ändern die einem selbst gehören, alle anderen können nur vom Nutzer "root" geändert werden. Die Priorität höher zu stellen als Standard ist ebenso nur dem Nutzer "root" möglich, man kann also die Priorität nur niedriger setzen, der Nutzer "root" auch höher.

Die höchste Priorität ist nun "-20" (die Priorität des Kernels), "0" ist Standard und "19" die niedrigste. Standardmäßig startet man Prozesse schon mit der gewünschten Priorität - also etwa "dolphin":

nice -n -10 dolphin

In diesem Fall muss man den Start natürlich als Nutzer "root" starten um eine Priorität von "-10" zu erreichen. Um die Priorität eines schon laufenden Prozesses zu ändern muss man wieder dessen Prozess-ID kennen - wie dies funktioniert haben wir schon kennen gelernt, etwa für die ID "28243":

renice -10 28243

Um wiederum eine Priorität von "-10" zu erreichen.

Suche Nach oben Startseite Mail an den Autor Links rund um Linux









SiteLock