2.3 KiB
2.3 KiB
Kiosk-Modus Fehlerbehebung
Problem
Der Kiosk-Modus zeigte "unreachable" und brauchte sehr lange zum Laden, obwohl die App im Testlauf mit python3 app.py --optimized
funktionierte.
Ursachen
- Flask Development Server: Der eingebaute Flask-Server blockiert bei mehreren gleichzeitigen Anfragen
- IPv6-Auflösung: Browser versuchen zuerst IPv6 (
::1
), was zu 30-90s Timeouts führt - Hängende Prozesse: Alte Verbindungen im WARTEND-Status blockieren neue Anfragen
Lösung
Die Fixes wurden direkt in app.py
integriert:
1. Production WSGI Server (Waitress)
- Automatisch aktiv bei
python app.py
oderpython app.py --optimized
- Multi-Threading für bessere Performance
- Stabil bei vielen gleichzeitigen Anfragen
2. IPv4-Only Binding
- Server läuft auf
127.0.0.1:5000
(nur IPv4) - Keine IPv6-Timeouts mehr
- Kiosk-Browser sollte
http://127.0.0.1:5000
verwenden
3. Automatische Prozess-Bereinigung
- Hängende Prozesse werden beim Start automatisch beendet
- Keine manuellen
taskkill
mehr nötig
Verwendung
# Normaler Start (mit allen Fixes)
python app.py
# Kiosk-Modus (mit Optimierungen)
python app.py --optimized
# oder
python app.py --kiosk
# Debug-Modus (Flask Dev Server)
python app.py --debug
# Debug mit Production Server
python app.py --debug --production
Kiosk-Browser Konfiguration
Im Kiosk-Browser sollte folgende URL verwendet werden:
http://127.0.0.1:5000
NICHT http://localhost:5000
verwenden (IPv6-Problem)!
Systemd Service
Der Kiosk-Service startet automatisch mit den richtigen Parametern:
ExecStart=/usr/bin/python3 /path/to/app.py --optimized
Performance-Verbesserungen
Mit den Fixes:
- ✅ Sofortiger Start (keine "unreachable" mehr)
- ✅ Schnelle Ladezeiten (< 1 Sekunde)
- ✅ Stabil bei Dauerbetrieb
- ✅ Keine Abstürze bei mehreren Anfragen
Fehlersuche
Falls Probleme auftreten:
- Port-Check:
netstat -ano | findstr :5000
- Prozesse beenden:
python app.py --kill
(in neuem Script) - Logs prüfen:
logs/app.log
undlogs/kiosk.log
Technische Details
- Waitress: Production WSGI Server (6 Threads, 200 Connections)
- IPv4: Binding auf 127.0.0.1 statt 0.0.0.0
- Cleanup: Automatisches Beenden von WARTEND/ESTABLISHED Prozessen
- Cache: 1 Jahr für statische Assets im optimierten Modus