# CUPS & Docker: Troubleshooting und Best Practices ## Netzwerk & Benutzer - **Firewall öffnen:** ```bash sudo ufw allow from 172.30.30.0/24 to any port 631 proto tcp ``` - **Benutzer zu lpadmin hinzufügen:** ```bash sudo usermod -aG lpadmin ``` - **CUPS-Client installieren:** ```bash sudo apt install cups-bsd ``` ## WSL2: CUPS starten ```bash sudo service cups start ``` ## CUPS-Socket Problem Falls `/run/cups/cups.sock` ein Verzeichnis ist: ```bash sudo rm -r /run/cups/cups.sock sudo service cups restart ``` ## CUPS-Dienst prüfen - **Läuft cupsd?** ```bash ps aux | grep cupsd ``` - **Fehler im Log:** ```bash tail -n 50 /var/log/cups/error_log ``` - **CUPS explizit neu starten und Socket prüfen:** ```bash sudo service cups stop sudo service cups start ls -l /var/run/cups/cups.sock ls -ld /var/run/cups ``` --- ## Erkenntnisse & Lösungen aus der Praxis **Problem:** Docker-Container verlieren nach einem Neustart des Host-CUPS-Dienstes die Verbindung zum Drucker (Fehler: "Bad file descriptor"). **Ursache:** Der CUPS-Dienst wird z.B. durch Logrotate automatisch neu gestartet (siehe `/etc/logrotate.d/cups-daemon`). Dabei wird der Socket neu erzeugt und bestehende Verbindungen ungültig. **Lösung:** - Entferne oder kommentiere in `/etc/logrotate.d/cups-daemon` die Zeile im `postrotate`-Block: ```bash # invoke-rc.d --quiet cups restart > /dev/null ``` Dadurch wird CUPS nicht mehr automatisch nachts neu gestartet. - Falls ein Neustart nötig ist, Container nach CUPS-Neustart ebenfalls neu starten (manuell oder automatisiert). - In Anwendungen Fehler wie "Bad file descriptor" abfangen und ggf. den Druckvorgang erneut versuchen. - Healthcheck im Container einbauen, um Verbindungsprobleme frühzeitig zu erkennen. **Tipp:** Portainer und Watchtower können helfen, Container-Status zu überwachen und bei Problemen automatisiert neu zu starten. --- **Weitere Infos:** - [wiki.hobbyhimmel.de/it/hobbysign/drucker_installation](https://wiki.hobbyhimmel.de/it/hobbysign/drucker_installation?s[]=cups)