Jobs

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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