Jobs: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | + | ==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 | Strg-Z | ||
| − | [ | + | [2]+ Stopped sleep 300 |
| − | |||
| − | |||
| − | + | ==Job im Hintergrund fortsetzen== | |
| − | * bg % | + | *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== | ||
| + | ;Aufgabe 1 | ||
| + | *Starte einen Job im Hintergrund und zeige ihn mit jobs an | ||
| + | |||
| + | ;Aufgabe 2 | ||
| + | *Starte einen Job im Vordergrund, halte ihn an und setze ihn im Hintergrund fort | ||
| + | |||
| + | ;Aufgabe 3 | ||
| + | *Hole einen laufenden Job wieder in den Vordergrund | ||
| − | + | ;Aufgabe 4 | |
| − | + | *Beende einen Job über seine Jobnummer | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ;Aufgabe 5 | |
| − | * | + | *Erkläre den Unterschied zwischen Jobnummer und PID |
| − | |||
Version vom 28. Januar 2026, 05:46 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
- Aufgabe 1
- Starte einen Job im Hintergrund und zeige ihn mit jobs an
- Aufgabe 2
- Starte einen Job im Vordergrund, halte ihn an und setze ihn im Hintergrund fort
- Aufgabe 3
- Hole einen laufenden Job wieder in den Vordergrund
- Aufgabe 4
- Beende einen Job über seine Jobnummer
- Aufgabe 5
- Erkläre den Unterschied zwischen Jobnummer und PID