Linux-Systemkontrolle dank Prozessmanagement

Wenn man mit Hilfe von Tools wie ps und top Prozesse überwacht, muss man außerdem wissen, wie diese zu verwalten sind. Das kann man mit Befehlen wie kill, killall und renice tun.

kill versendet Signale an laufende Prozesse. Die offensichtlichste Anwendung ist das Stoppen der Programmausführung. Zunächst benötigt man die PID eines laufenden Programms (zum Beispiel mit Hilfe des Befehls ps aux), dann kann man den Befehl folgendermaßen einsetzen:

$ kill 125

Unter normalen Umständen wird damit der Prozess 125 abgebrochen. Dabei ist noch zu beachten, dass man Inhaber des Prozesses oder Root sein muss um ihn abbrechen zu können. Mitunter reagiert aber ein Prozess nicht auf so einen einfachen kill-Befehl. Dann sollte man folgendes ausprobieren:

$ kill -9 125

Wenn sich der Prozess aufgehängt hat und nicht normal reagiert, kann man versuchen, ihn mit dem Bitschalter -9 zu beenden, wie in obigem Beispiel gezeigt wird. Anstelle des sigterm, das von einem normalen kill-Befehl gesendet wird, sendet -9 ein sigkill (womit die Beendigung des Programms erzwungen wird). Es können auch andere Signale gesendet werden um es zu beenden oder möglicherweise neu zu starten. Einen Überblick erhält man durch den Befehl kill -l.

Der Befehl killall nimmt andere Argumente entgegen, auch wenn er kill sehr ähnlich ist. Anstatt eine PID hinzufügen, kann man einen Programmnamen angeben. Dabei werden sämtliche Prozesse mit dem angegebenen Programmnamen gestoppt. Das bezieht sich auf die eigenen Programme oder, sofern man selber der Root-Benutzer ist, auf alle. Mit dem Befehl killall tcpdump werden also sämtliche Bereiche des Programms tcpdump gekillt. Das ist besonders hilfreich, wenn viele Prozesse unter einem einzigen Namen laufen.

Beim Abbrechen von Prozessen muss man genau darauf achten, welche Prozesse abgebrochen werden, insbesondere wenn man selbst der Root-Benutzer ist. Wird der falsche Prozess beendet, kann das zur Beendigung der Sitzung oder sogar zum Systemstopp führen. Deshalb sollte man sich mit den standardmäßig laufenden Programmen und den von diesen beanspruchten Ressourcen vertraut machen. Wenn man weiß, was normalerweise läuft, ist das eine unschätzbare Hilfe bei der Isolierung von Systemproblemen.

Schon weiter oben wurde erwähnt, dass man auch die Priorität eines laufenden Prozesses verändern kann. Das geschieht mit dem Befehl renice. Die Veränderung der Priorität bedeutet für das Betriebssystem, dass dem bestimmten Prozess mehr oder weniger CPU-Zeit zur Verfügung gestellt wird. Die Bewertung der „Niceness“ eines Prozesses erfolgt mit einer Skala von -20 bis 20, wobei -20 die höchste Priorität darstellt. Um die Priorität des httpd-Prozesses 125 herabzusetzen, könnte man folgendes tun:

$ renice +20 125

Das kann auch zwischendurch zur Schonung der Systemressourcen erfolgen. Das System kann das natürlich auch selbständig ausführen und anzeigen, wenn ein Programm mehr Ressourcen beansprucht, als es eigentlich sollte.

Schnellere Problemlösung
Die Möglichkeit zur Überwachung und Steuerung von Prozessen auf einem Linux-System ist von großer Bedeutung. Programme wie ps, top, kill und renice ermöglichen zu sehen, was ein Prozess gerade macht, und ihn zu steuern. Je mehr man über jeden einzelnen ablaufenden Prozess weiß, desto leichter ist es, Probleme herauszufinden, wenn sie sich einschleichen. In einem System treten gewöhnlich Probleme wie Langsamkeit oder Instabilität aus bestimmten Gründen auf. Mit diesen Tools hat man mehr Möglichkeiten zur Beseitigung der Ursachen an der Hand.

 

Themenseiten: Betriebssystem, Linux, Open Source

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Linux-Systemkontrolle dank Prozessmanagement

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *