tomee4hobbysign/cups
2025-10-06 19:30:21 +02:00
..
cups inital 2025-10-06 19:30:21 +02:00
ppd inital 2025-10-06 19:30:21 +02:00
README.md inital 2025-10-06 19:30:21 +02:00

CUPS & Docker: Troubleshooting und Best Practices

Netzwerk & Benutzer

  • Firewall öffnen:
    sudo ufw allow from 172.30.30.0/24 to any port 631 proto tcp
    
  • Benutzer zu lpadmin hinzufügen:
    sudo usermod -aG lpadmin <deinbenutzername>
    
  • CUPS-Client installieren:
    sudo apt install cups-bsd
    

WSL2: CUPS starten

sudo service cups start

CUPS-Socket Problem

Falls /run/cups/cups.sock ein Verzeichnis ist:

sudo rm -r /run/cups/cups.sock
sudo service cups restart

CUPS-Dienst prüfen

  • Läuft cupsd?
    ps aux | grep cupsd
    
  • Fehler im Log:
    tail -n 50 /var/log/cups/error_log
    
  • CUPS explizit neu starten und Socket prüfen:
    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:
    # 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: