top.png

Prozesse im Griff

Programme mit top, ps, kill, pidof, nice, renice steuern

13.07.2012
Firefox hängt – jetzt heißt es, schnell das Programm abzuschießen, bevor der Speicher voll läuft und das System unbenutzbar wird. Am schnellsten geht es auf der Shell.

Stabilität ist einer der Punkte, der Linux zu Zeiten von Windows 95 populär gemacht hat. Eine der Gründe dafür ist, dass Linux alle laufenden Programme (die "Prozesse" heißen) sauber voneinander trennt, so dass eine fehlerhaft programmierte Anwendung beim Absturz keine weiteren Programme oder gar das ganze System mit in den Abgrund reißen kann. Als Multitasking-Betriebssystem kann Linux nahezu beliebig viele Programme parallel ausführen; mit wachsender Prozesszahl wird das Gesamtsystem nur immer langsamer.

Jedes Programm, das Sie starten, wird zu einem Prozess; läuft dasselbe Programm mehrmals, gibt es auch mehrere Prozesse. Die Prozesse sind voneinander unabhängig und belegen unter anderem Speicher und CPU-Zeit.

Prozessmanager

Traditionell steuern Sie die Prozesse über Shell-Befehle, und oft sind Sie auf diesem Weg schneller als mit grafischen Prozessmanagern. Im Folgenden stellen wir Ihnen die wichtigsten Kommandos vor, mit denen Sie die Prozessliste betrachten und laufende Programme im Detail beeinflussen können: Dazu zählt nicht nur der Programmabbruch, sondern es sind auch Pausen und das Schneller- oder Langsamermachen möglich.

Manche Programme belegen sehr viel Speicher – und mit zunehmender Laufzeit immer mehr. Typische Vertreter dieser speicherhungrigen Art sind Browser wie Firefox: Sie laden z. B. häufig Plug-ins für Flash- oder sonstige multimediale Inhalte in den Speicher. Gerade Plug-ins sind oft problematisch, zumal sie gelegentlich den Browser zum Einfrieren bringen.

Mit dem Tool top werfen Sie einen Blick auf die größen Speicherfresser. Dazu öffnen Sie zunächst ein Terminalfenster, maximieren es und geben dann den Befehl top ein. Nach dem Programmstart zeigt top eine Liste von Prozessen an und aktualisiert diese ständig – es sortiert allerdings zunächst nach der prozentualen CPU-Nutzung (Spalte %CPU). Das ändern Sie wie folgt: Drücken Sie nacheinander [Umschalt]+[O],[O] und [Eingabe]:

  • Die erste Tastenkombination [Umschalt]+[O] ruft den Dialog auf, in dem Sie das Sortierfeld einstellen.
  • Ein kleines "o", also [O], wählt hier das Feld VIRT aus, das den gesamten vom Programm verwendeten virtuellen Speicher anzeigt.
  • Mit [Eingabe] kehren Sie zur Prozessliste zurück.

Danach sieht die Anzeige wie in der Aufmachergrafik dieses Artikels aus. Wichtig ist hier die rot hervorgehobene Spalte VIRT, die anzeigt, wie viel virtuellen Speicher die Prozesse verbrauchen. Ganz oben in der Liste stehen in diesem Beispiele die beiden Browserprozesse firefox und opera.

Wenn der Rechner ständig auf die Festplatte zugreift, ist der Hauptspeicher knapp geworden: Linux "swappt", das heißt: Es lagert Speicherbereiche einzelner Prozesse auf die Platte aus, um wieder Platz zur Verfügung zu haben. Will ein Programm dann weiterarbeiten und derart ausgelagerte Daten nutzen, müssen diese aus der Platte wieder ins RAM geladen werden – wofür das System aber erneut Platz freischaufeln muss. So entsteht, wenn Sie insgesamt zu viele Prozesse (mit zu großem Speicherbedarf) ausführen, ein Kreislauf, in dem Linux permanent Daten zwischen Platte und RAM hin und her bewegt.

Das Problem können Sie nur beheben, indem Sie einzelne Programme (am besten solche, die viel Speicher verbrauchen) schließen. Tritt die Situation ständig auf, sollten Sie überlegen, einen zusätzlichen Speicherriegel einzubauen. Die Übersicht in top sagt Ihnen nun, welche Programme Sie beenden sollten, um die größte Menge Speicher wieder freizugeben.

Mach mal Pause

Gelegentlich reicht es auch aus, ein ressourcenfressendes Programm vorübergehend zu unterbrechen – dabei ist es egal, ob diese Anwendung vor allem Rechenzeit oder Speicher beansprucht: Ist sie einmal angehalten, kann Linux den Prozessspeicher auf Platte auslagern und wird ihn nicht wieder anfordern, bis Sie das Programm reaktivieren. Das Swappen hört dann schnell auf.

Ein Blick in die Prozessliste verrät Ihnen, wie alle Prozesse heißen und welche Prozess-IDs (PID) sie haben: Diese IDs sind eindeutige Nummern, anhand derer Linux (und auch Sie) die Prozesse voneinander unterscheiden können. In der Übersicht des Programms top stehen die PIDs in der ersten Spalte, die Namen in der letzten. Taucht das Programm dort nicht auf (die Liste ist ja nicht vollständig), betrachten Sie mit dem Kommando ps die vollständige Liste. Am besten leiten Sie die Ausgabe über | less in einen Pager und verwenden die ps-Parameter ux (ohne einleitendes Minuszeichen), um alle (eigenen) Prozesse zu sehen (ps ux). In der Ausgabe finden Sie die Prozess-ID in der zweiten Spalte und den Programmnamen in der letzten (Abbildung 1). Wenn Sie die Prozess-ID des betroffenen Programmes gefunden haben, schicken Sie dem Prozess einfach über den kill-Befehl das Signal STOP, dann hält er an. Haben Sie sich aus der Prozessliste den (genauen!) Programmnamen gemerkt, verwenden Sie statt kill das Tool killall, welches das Signal an alle Prozesse mit diesem Namen schicken wird. Die beiden Befehlsvarianten sind also:

kill -STOP PID
killall -STOP Prozessname

Bei grafischen Anwendungen bemerken Sie dann, dass der Inhalt des Fensters nicht mehr aktualisiert wird.

Abbildung 1: Die Prozessliste mit "ps" zeigt unter anderem die PID und den Prozessnamen (markierte Spalten) an.

Soll der Prozess seine Arbeit wieder aufnehmen, schicken Sie ihm erneut ein Signale – nach dem STOP geht es jetzt mit CONT (continue, fortsetzen) weiter. Auch hier haben Sie die Wahl, ob Sie einen einzelnen Prozess über dessen ID oder eine Gruppe von Prozessen über den Programmnamen ansprechen wollen:

kill -CONT PID
killall -CONT Prozessname

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 2 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Prozesse im Griff
    OpenOffice hängt – jetzt heißt es, schnell das Programm abzuschießen, bevor der Speicher voll läuft und das System unbenutzbar wird. Am schnellsten geht es auf der Shell.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
  • Top, Htop, Atop und Glances im Vergleich
    Erfahrene Anwender schätzen den Systemmonitor Top als probates Hilfsmittel zum Aufspüren von Systemklemmern. Die Alternativen Htop, Atop und Glances erweitern dessen Möglichkeiten.
  • Zu Befehl: ps, pstree, lsof, kill
    Linux als multitasking-fähiges System besitzt eine leistungsfähige Prozessverwaltung – durch geschickte Ressourcenaufteilung scheinen Programme nicht nur gleichzeitig abzulaufen, es ist auch wesentlich leichter, sich von Prozessen zu trennen, die Probleme verursachen. Wir stellen Kommandos vor, mit denen Sie kurzen Prozess machen.
  • Viel zu tun
    Was ist los auf dem Linux-Rechner? Verschiedene Shell-Kommandos verraten etwas über die Prozesse des Systems und helfen bei der Steuerung.
Kommentare

Infos zur Publikation

title_2014_04

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...