Aufmacher

Viel zu tun

Prozess- und Job-Kontrolle

01.07.2008
Was ist los auf dem Linux-Rechner? Verschiedene Shell-Kommandos verraten etwas über die Prozesse des Systems und helfen bei der Steuerung.

Immer, wenn Sie (oder eine Anwendung) ein Programm aufrufen, startet das Betriebssystem einen oder mehrere Prozesse. Diese durchleben verschiedene Zustände: Sie können verarbeitet, angehalten, wieder reaktiviert und in der Regel auch beendet werden. Linux bietet für Prozesse eine Art Zugangsbeschränkung: Sie anhalten, fortsetzen oder beenden darf immer nur der Benutzer, der sie gestartet hat. Eine Ausnahme macht der Benutzer root: Er darf alle Prozesse eines Systems steuern. Darüber hinaus gibt es Prozesse, die unter einer Kennung eines so genannten Systembenutzers, wie nobody oder lp, laufen – auch auf diese hat nur root vollen Zugriff. Diese Zu-Befehl-Folge zeigt Tools, mit denen Sie mehr über Prozesse herausfinden und diese steuern.

Eine große Familie

Prozesse sind nicht alleine, sondern befinden sich immer in guter Gesellschaft. Tatsächlich handelt es sich um eine hierarchische Struktur: Ganz oben steht init mit der Prozessnummer 1; es handelt sich um den ersten Prozess, den Linux nach dem Booten startet. Von diesem "Vorfahren" stammen alle weiteren Prozesse ab – init startet die elementaren Programme des Betriebssystems. Den Zusammenhang zwischen "Eltern" und "Kindern" zeigt das Programm pstree. In dieser Baumstruktur erkennen Sie auf einen Blick, wer von wem abstammt (Abbildung 1).

Abbildung 1: Pstree zeigt auf der Shell die Verwandtschaftsverhältnisse. Vom ersten Prozess des Systems ( init) stammen alle weiteren Prozesse ab.

Noch ausführlicher gestaltet das Tool seine Ausgabe, wenn Sie die Option -a beim Start mit übergeben. Jetzt zeigt Pstree zusätzlich die Parameter, mit denen die Programme laufen. Verwenden Sie ein Terminal wie das Gnome-Terminal oder die KDE-Konsole, das verschiedene Fonts (und auch die Darstellung in Fettschrift) anbietet, probieren Sie doch mal den Parameter -h: Pstree setzt nun ein Highlight für seinen eigenen Prozess und die Vorfahren. Möchten Sie das praktische Feature auch gerne für andere Prozesse nutzen, verwenden Sie -H zusammen mit der Prozessnummer, und Pstree hebt den angegebenen Prozess und seine Verwandten hervor. Die Prozessnummer (PID) verrät Pstree über die Option -p und den Benutzer über -u. Alle Parameter dürfen Sie auch kombinieren, wie etwa zu pstree -apu.

Prozesse auflisten mit Ps

Eine Liste aller gerade auf dem System laufenden Prozesse zeigt das Kommando ps an. Ohne weitere Parameter beschränkt sich das Tool auf die Prozesse der aktuellen Shell. Wer sich für alle eigenen Prozesse interessiert, ruft ps zusammen mit der Option x auf (Listing 1). Die tabellarische Ausgabe in der Shell gibt Auskunft zu den folgenden Eigenschaften:

  • PID: Die Prozessnummer ("process identifier"), eine eindeutige Nummer, über die Sie einen Prozess gezielt ansprechen.
  • TTY: Das Terminal oder Konsole, aus der der Prozess heraus gestartet wurde (ein Fragezeichen bedeutet, dass der Prozess nicht in einem Terminal läuft)
  • STAT: Der Status des Prozesses. Hier tauchen beispielsweise die Zustände S ("sleeping" = "schlafend"), R ("running" = läuft gerade), D ("dead" = Prozess ist nicht mehr wieder aufzuwecken) oder Z ("zombie" = ein abgelaufener Prozess, der seinen Rückgabestatus nicht mehr richtig übergeben konnte) auf.
  • TIME: Die verbrauchte Rechenzeit.
  • COMMAND: Der vollständige Befehl mit allen Aufrufparametern.
Listing 1
$ ps x
  PID TTY      STAT   TIME COMMAND
 3011 ?        Ss     0:00 /usr/bin/gnome-session
 3061 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session
[…]
 3086 ?        Ssl    0:02 gnome-panel --sm-client-id default1
 3088 ?        Ssl    0:02 nautilus --no-default-window --sm-client-id default2

Für ps stehen jede Menge weitere Optionen zur Verfügung, mit denen Sie die Ausgabe noch informativer gestalten. So zeigt u zusätzlich den Eigentümer und die Rechenzeit beziehungsweise den Speicheranteil an; a blendet hingegen eine Liste aller Prozesse sämtlicher Benutzer ein. Ebenfalls praktisch ist l: In dieser langen Ausgabe sehen Sie zusätzliche Infos, unter anderem zur PPID ("parent process identifier"), also zum "Elternprozess", und zur UID, also zur User Identification des aufrufenden Benutzers. Um die teilweise recht langen Aufrufparameter der Spalte COMMAND vollständig anzuzeigen, setzen Sie w ein – die Option verlängert die Ausgabe und darf auch mehrfach verwendet werden. Alle Parameter kombinieren Sie nach Lust und Laune, wie beispielsweise in Abbildung 2 zu sehen.

Abbildung 2: Das Kommando ps zeigt, was auf dem Rechner los ist.

TIPP

In der Spalte COMMAND zeigt ps den vollständigen Befehlsaufruf an. Einige Programme, wie etwa der Downloadmanager wget, nehmen auf der Shell optional schon Passwörter zur Authentifizierung entgegen. Auch dieses Kennwort taucht in der Prozessliste als Kommando auf – so kann theoretisch jeder Benutzer des Systems sensible Daten ausspionieren.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

  • 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.
  • 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.
  • Prozess beobachten und beenden auf der Kommandozeile
    Zahlreiche Prozesse tummeln sich auf einem Linux-System: Dieser Artikel bringt Licht ins Prozessdunkel, zeigt, wie Sie Tasks anhalten, fortsetzen oder beenden und verrät, wie Sie Überbleibsel von abgestürzten Programmen ins Jenseits befördern.
  • Präzise Kontrolle
    Auf einem typischen Linux-System laufen viele Anwendungen und Dienste gleichzeitig. Mit den richtigen Befehlen verschaffen Sie sich einen Überblick und greifend steuernd ein.
  • Job-Kontrolle in der Shell
    Mit den richtigen Kommandos wird die Job-Verwaltung in der Shell zum Kinderspiel: Starten Sie Befehle im Hintergrund oder unterbrechen Sie Prozesse, behalten Sie mehrere Hintergrund-Jobs im Blick und bringen Sie einzelne gezielt zurück in den Vordergrund.
Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-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

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...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...