Zwischen Aufgabe Bash: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Übungsaufgabe: Webserver-Steuerung mit Bash (webctl.sh) = *In dieser Aufgabe soll ein Bash-Skript einen lokalen Python-Webserver starten, stoppen, überwac…“) |
|||
| Zeile 48: | Zeile 48: | ||
*Alle Fehlerfälle sollen sinnvolle Meldungen und passende exit-Codes zurückgeben. | *Alle Fehlerfälle sollen sinnvolle Meldungen und passende exit-Codes zurückgeben. | ||
| + | |||
| + | <!--- | ||
== Lösung (Kommentar) == | == Lösung (Kommentar) == | ||
<pre> | <pre> | ||
| Zeile 156: | Zeile 158: | ||
esac | esac | ||
</pre> | </pre> | ||
| + | ---> | ||
Version vom 25. November 2025, 15:56 Uhr
Übungsaufgabe: Webserver-Steuerung mit Bash (webctl.sh)
- In dieser Aufgabe soll ein Bash-Skript einen lokalen Python-Webserver starten, stoppen, überwachen und den Status anzeigen.
- Dabei sollen die in der Bash verfügbaren Kontrollstrukturen wie case, if, for, while, until, continue, break und exit sinnvoll eingesetzt werden.
Aufgabenstellung
- Erstellen Sie ein Skript webctl.sh mit folgenden Befehlen:
- start PORT
- stop
- status
- wait
- help
Anforderungen
Argument- und Umgebungsprüfung
- Bei allen Befehlen außer help muss geprüft werden, ob python3 installiert ist.
- Beim Befehl start muss ein gültiger Port (1024–65535) angegeben werden.
- Ungültige Eingaben sollen mit exit 1, fehlende Python-Installation mit exit 2 quittiert werden.
start-Funktion
- Wenn bereits ein Webserver läuft (PID-Datei /tmp/web.pid existiert), soll ein Fehler ausgegeben werden (exit 3).
- Der Startvorgang besteht aus einer for-Schleife über fünf Versuche.
- Beim dritten Versuch soll der Webserver mit python3 -m http.server PORT im Hintergrund gestartet werden.
- Die PID soll in /tmp/web.pid gespeichert werden und die Schleife mit break verlassen werden.
- Abschluss: Ausgabe "Webserver gestartet".
stop-Funktion
- Wenn keine PID-Datei existiert, soll das Skript mit exit 4 enden.
- Mit einer while-Schleife soll der Prozess beendet werden, solange kill erfolgreich ist.
- Jeder zweite Schleifendurchlauf soll mit continue übersprungen werden.
- Nach erfolgreichem Stoppen: PID-Datei löschen und "gestoppt" ausgeben.
status-Funktion
- Wenn eine PID-Datei existiert, prüfen Sie, ob der Prozess noch läuft.
- Wenn er läuft: Ausgabe "läuft".
- Wenn nicht: Ausgabe "PID existiert, aber Prozess tot".
wait-Funktion
- Mit einer until-Schleife soll gewartet werden, bis der Prozess nicht mehr läuft.
- Alle zwei Sekunden soll "warte..." ausgegeben werden.
help-Funktion
- Gibt eine Übersicht der verfügbaren Befehle aus.
Zusatzhinweis
- Alle Fehlerfälle sollen sinnvolle Meldungen und passende exit-Codes zurückgeben.