Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Prozesse und Dienste verwalten

Nach dieser Lektion: Ich kann ein Programm finden und beenden und einen Dienst prüfen.

Lektion, 45 Min.10 BefehleLab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Wenn ein Programm nicht mehr reagiert

Ein Prozess ist ein Programm, das gerade läuft. Wer einen Server betreut, muss Prozesse finden und beenden können.

Auf deinem Handy hältst du eine App an, die hängt. Auf einem Server geht das mit einem Befehl, denn dort gibt es keinen Knopf zum Wischen. Heute lernst du, wie.

Am Ende dieser Lektion

Notiz

Ich kann ein Programm finden und beenden und einen Dienst prüfen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Prozessein Programm, das gerade läuft
PIDdie Nummer, unter der ein Prozess läuft
Signaleine Nachricht, die ein Prozess von außen bekommtkill -9
Dienstein Programm, das im Hintergrund dauerhaft läuft
systemddas Programm, das Dienste startet und überwacht

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bevor du anfängst

Notiz

Läuft das Lab noch aus der letzten Lektion, arbeite einfach weiter. Sonst drück oben in der Leiste auf Lab starten und warte eine Minute. Im Lab laufen schon mehrere Programme für dich zum Üben. Du darfst sie alle beenden.

Jedes laufende Programm hat eine Nummer

Wenn du ein Programm startest, macht Linux daraus einen Prozess und gibt ihm eine Nummer, die PID. Mit ihr kannst du genau diesen Prozess ansprechen.

Der Befehl ps listet Prozesse auf. Der Befehl pgrep name sucht Prozesse nach ihrem Namen und gibt ihre PIDs aus. Mit -c zählt er sie nur.

Beispiel: eine Prozessliste

Code: bash
ps -u student -o pid,comm
    PID COMMAND
   2210 lab-worker
   2211 lab-stubborn
   2305 bash

Die Übungsprogramme zählen

Befehl
pgrep -c lab-

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die PID eines Prozesses ausgeben

Befehl
pgrep lab-worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Mit einem Signal beendest du einen Prozess

Ein Signal ist eine Nachricht an einen Prozess. Der Befehl kill schickt eines, pkill name schickt es nach Namen.

Das normale Signal bittet höflich: „Beende dich bitte.“ Die meisten Programme tun es. Ein hartnäckiges Programm überhört die Bitte. Dann hilft kill -9: Dieses Signal kann kein Prozess ablehnen.

Zwei Wege, einen Prozess zu beenden

BefehlWirkungWann
kill 2210Bittet den Prozess 2210, sich zu beendenZuerst immer dieser Weg
kill -9 2210Beendet ihn sofort, ohne RückfrageErst wenn die Bitte nichts nützt
pkill nameWie kill, aber nach NamenWenn du die PID nicht kennst

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Programm lab-worker bitten, sich zu beenden

Befehl
pkill lab-worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zählen, ob es noch läuft

Befehl
pgrep -c lab-worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Dasselbe bei lab-stubborn versuchen

Befehl
pkill lab-stubborn

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zählen, ob lab-stubborn noch läuft

Befehl
pgrep -c lab-stubborn

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Signal 9 an lab-stubborn schicken

Befehl
pkill -9 lab-stubborn

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Noch einmal zählen

Befehl
pgrep -c lab-stubborn

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele greifen sofort zu kill -9, weil es immer wirkt. Das ist riskant. Das Programm kann dann nicht mehr aufräumen und speichern. Versuche zuerst die höfliche Bitte und nimm Signal 9 nur, wenn der Prozess nicht reagiert.

Ein Dienst läuft für dich im Hintergrund

Eine Webseite oder eine Datenbank soll immer laufen, auch wenn niemand angemeldet ist. Dafür gibt es Dienste. Das Programm systemd startet sie beim Hochfahren und überwacht sie.

Mit systemctl is-active name fragst du, ob ein Dienst läuft. Starten und stoppen darf nur ein Konto mit mehr Rechten, meist mit sudo.

Fragen, ob der Webdienst läuft

Befehl
systemctl is-active lab-web

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Beim Webdienst eine Datei abrufen

Befehl
curl -s --noproxy "*" http://localhost:8000/hello.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.