Jobs: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Zeile 47: Zeile 47:
*pkill arbeitet mit Prozessnamen
*pkill arbeitet mit Prozessnamen


==Übungsaufgaben==
==Übungsaufgaben (Job-Control mit Umleitung)==
 
===Vorbereitung===
;Terminal
*ls -lR / > /tmp/ls.log 2>&1 &
 
;Aufgabe 1
;Aufgabe 1
*Starte einen Job im Hintergrund und zeige ihn mit jobs an
*Starte den Befehl im Hintergrund und zeige ihn mit jobs an
<!-- Lösung:
ls -lR / > /tmp/ls.log 2>&1 &
jobs
-->


;Aufgabe 2
;Aufgabe 2
*Starte einen Job im Vordergrund, halte ihn an und setze ihn im Hintergrund fort
*Starte den Befehl im Vordergrund, halte ihn an und setze ihn im Hintergrund fort
<!-- Lösung:
ls -lR / > /tmp/ls.log 2>&1
Strg-Z
bg
-->


;Aufgabe 3
;Aufgabe 3
*Hole einen laufenden Job wieder in den Vordergrund
*Hole den laufenden Job wieder in den Vordergrund
<!-- Lösung:
fg
-->


;Aufgabe 4
;Aufgabe 4
*Beende einen Job über seine Jobnummer
*Beende den Job über seine Jobnummer
<!-- Lösung:
kill %1
oder entsprechende Jobnummer
-->


;Aufgabe 5
;Aufgabe 5
*Erkläre den Unterschied zwischen Jobnummer und PID
*Erkläre den Unterschied zwischen Jobnummer und PID anhand dieses Jobs
<!-- Lösung:
Jobnummer: von der Shell vergeben, nur im aktuellen Terminal gültig
PID: vom Kernel vergeben, systemweit eindeutig
-->

Aktuelle Version vom 28. Januar 2026, 05:50 Uhr

Job-Control (Vordergrund / Hintergrund)

  • Ein Job ist ein Programm, das von der Shell gestartet wurde und im Vorder- oder Hintergrund laufen kann.
  • Die Shell verwaltet Jobs unabhängig von PIDs.

Job im Hintergrund starten

  • sleep 300 &
  • Die Shell gibt eine Jobnummer und die PID aus
[1] 12345

Aktive Jobs anzeigen

  • jobs

Job anhalten

  • sleep 300
Strg-Z
[2]+  Stopped  sleep 300

Job im Hintergrund fortsetzen

  • bg %2
[2]+ sleep 300 &

Job in den Vordergrund holen

  • fg %2
sleep 300

Jobs beenden

  • kill %2
  • kill -9 %2

Typische Job-Zustände

  • Running Job läuft
  • Stopped Job angehalten (z.B. Strg-Z)
  • Done Job beendet
  • Killed Job durch Signal beendet

Wichtige Regeln

  • Hintergrund-Jobs dürfen keine Benutzereingaben erwarten
  • Ausgaben auf den Bildschirm sind möglich, aber störend
  • Jobs sind an das Terminal gebunden

Abgrenzung

  • Job ≠ Prozess
  • Ein Job kann aus mehreren Prozessen bestehen
  • kill arbeitet mit PID oder Jobnummer
  • pkill arbeitet mit Prozessnamen

Übungsaufgaben (Job-Control mit Umleitung)

Vorbereitung

Terminal
  • ls -lR / > /tmp/ls.log 2>&1 &
Aufgabe 1
  • Starte den Befehl im Hintergrund und zeige ihn mit jobs an
Aufgabe 2
  • Starte den Befehl im Vordergrund, halte ihn an und setze ihn im Hintergrund fort
Aufgabe 3
  • Hole den laufenden Job wieder in den Vordergrund
Aufgabe 4
  • Beende den Job über seine Jobnummer
Aufgabe 5
  • Erkläre den Unterschied zwischen Jobnummer und PID anhand dieses Jobs