Bis das papierlose Büro Wirklichkeit wird, obliegt es dem Administrator, das Linux-Drucksystem einzurichten. Zwei Systeme aus zwei Generationen treten das Erbe Gutenbergs an.
Als Laserdrucker eine Seltenheit und der PC eben erfunden waren, teilten sich Multitasking-fähige Computer einen Zeilen- oder Matrixdrucker. Peripheriegeräte waren nicht besonders schnell. Daher wollten die sie steuernden Rechner und Betriebssysteme nicht untätig warten, bis ein Druckjob beendet war. So stellten sie das Drucken unter die Aufsicht eines eigenen Daemon, der Aufträge für die angeschlossenen Geräte in einem Verzeichnis sammelte.
Admins benutzen den Begriff Spool für “Simultaneous peripheral output on line” heute noch und nennen den Daemon »lpd« (Line Printer Daemon), selbst wenn es sich um einen Tintenstrahl- oder Laserdrucker handelt. Über die Kommandozeile schickt ein Client »lpr« einen Druckauftrag zu seinem Server »lpd«. Der reicht ihn zum eigentlichen Drucker weiter (Abbildung 1).

Abbildung 1: Das Unix-Drucksystem folgt dem Client-Server-Modell. Ein Client sendet von der Kommandozeile das Dokument an einen zentralen Daemon, der sich um das Ansteuern der einzelnen Geräte kümmert.
So findet sich auf älteren Linux-Systemen standardmäßig das Druck-Subsystem LPD der Berkeley Software Distribution, das konzeptionell von Zeilendruckern ausgeht. Mit fortschreitender Technik stiegen aber die Ansprüche an die auszudruckenden Dokumente.
Heute beherrschen handelsübliche Drucker mehrere Zeichensätze, mischen sie mit Bildern, kennen Ligaturen, Unterschneidungen und mehr. Das macht es nötig, das Drucksystem anzupassen und zu erweitern. So hieß die Weiterentwicklung auch LPRng (LPR Next Generation). Oft bedeutet dies, dass Programme Dokumente in Postscript oder einer anderen Steuersprache an den Drucker senden.
Cups als Alternative
Ein weiteres Drucksystem ist das Common Unix Printing System (Cups). Es zeichnet sich durch seine Standardisierung, Modularität und das plattformübergreifende Drucken aus. Es regelt, wer auf welche Geräte zugreifen darf (Zugriffssteuerung), überprüft die Identität des Anwenders (Authentifizierung) und sorgt für Verschlüsselung bei der Übertragung. Anwender sehen zumeist nur einen grafischen Druckdialog, der Admin darf Cups über Kommandozeilen-Werkzeuge, aber auch über einen integrierten Webserver steuern – praktisch. Clients nutzen meist das auf HTTP aufbauende Internet Printing Protocol (IPP) auf TCP-Port 631 [1], das wesentlich mehr bietet als das klassische LPD-Protokoll auf TCP-Port 515 [2].
Auf der Kommandozeile ähneln sich die beiden Systeme LPRng und Cups. Die wichtigen Programme tragen denselben Namen und besitzen meist gleiche Aufrufparameter. Gute Kenntnisse über LPRng zahlen sich nach wie vor aus, da Cups auf den gleichen Abläufen basiert und Konfigurationsoptionen übernommen hat. Cups implementiert jedoch nicht alle Optionen des LPRng-Systems. Bei einigen Befehlen lohnt es sich, genauer hinzusehen.
|
LPI-Aufgabengruppen |
|---|
|
Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen. Dieser Artikel erklärt die Drucksysteme LPRng und Cups (ein Objective 1.107.1 gibt es nicht):
|
Aufträge und Ausdrucke
Ein Dokument ausdrucken erfordert verschlungenere Wege als die des Papiers im Drucker: An einem Ausdruck sind mehrere Instanzen von Programmen beteiligt. Sie bringen letztlich die zu druckenden Daten in ein Format, das der Drucker versteht. Postscript spielt dabei als Zwischenformat eine herausragende Rolle. Ist der Zieldrucker Postscript-fähig, reicht es, die Eingabedatei in dieses Format umzuwandeln. Für andere Drucker wandeln die Drucksysteme die Lingua franca wieder in ein für den Drucker verständliches Format. Sie setzen dazu Filter ein, die weitere Aufgaben erledigen, etwa Quelltexte einrücken (Pretty Printing), Kopf- und Fußzeilen einfügen oder mehrere Seiten auf einen Bogen Papier verkleinern.
Aus Benutzersicht gibt es zwei Möglichkeiten, einen Druckauftrag zu erteilen: von der Kommandozeile aus oder innerhalb einer grafischen Applikation. Eine Datei lässt sich am einfachsten mit dem Befehl »lpr« ausdrucken, besonders wenn sie als Postscript vorliegt. Dabei stellt das System den Druckjob ins Spool-Verzeichnis des Standarddruckers. Einen anderen Drucker wählt der Anwender mit der Option »-P«. Weitere Optionen listet Tabelle 1. Der Befehl »lpr« verarbeitet auch die Standardeingabe: »grep demo bsp.txt | lpr -Phplj5d«.
|
Tabelle 1: Optionen |
|
|---|---|
|
Option |
Bedeutung |
|
-P Drucker |
Name des Ausgabedruckers |
|
-# Anzahl |
Anzahl der Ausdrucke |
|
-m |
Mail an den Benutzer |
|
-h |
Bannerseite nicht drucken |
LPRng gewinnt den Namen des Standarddruckers aus der Shell-Umgebungsvariablen »PRINTER«, wenn niemand ein Gerät angegeben hat. Cups teilt der Admin durch »lpoptions -d Drucker« den Standarddrucker mit und fragt ihn mit »lpstat -d« ab.
Simpel Drucken
Neben »lpr« kennt Cups noch das Kommando »lp« (ein aus dem Drucksystem von System V übernommener Befehl). Zwar erfüllen beide Befehle denselben Zweck, verfügen aber über unterschiedliche Optionen. Mit »lp« und seiner Option »-o special« lassen sich zum Beispiel Seiten passend skaliert ausgeben (»-o fitplot«) oder Papiergrößen bestimmen (»-o media= Papierformat«).
Wer herausfinden will, wie es um seine Aufträge bestellt ist, etwa ob umfangreiche Jobs weiter vorne in der Warteschlange stehen, fragt mit »lpq« den Status der Druckerqueue ab.
Statt aktiv den Status abzufragen, versendet das Drucksystem mit der Option »-m« auch eine Mail bei Beendigung des Druckvorgangs. Zu beachten ist jedoch, dass ein Job für das Drucksystem als fertig gilt, sobald ihn der Drucker übernommen hat. Weil diese auch intern oft Zwischenspeicher besitzen, muss der Empfang einer solchen Mail also nicht zwangsläufig bedeuten, dass der langsame Drucker am Ende des Korridors auch tatsächlich den Ausdruck komplett fertiggestellt hat.
In der Warteschlange
Befindet sich ein Druckauftrag noch in der Warteschlange des Druckers, können Nutzer ihn mit »lprm« wieder entfernen. Ohne Druckerangabe und Nummer aufgerufen löscht das Kommando den an vorderster Stelle stehenden Druckauftrag aus der Standard-Druckschlange. Wer einen bestimmter Job löschen will, informiert sich erst mit »lpq« über dessen Nummer und entfernt ihn mit »lprm Job-ID«. Cups bietet neben »lprm« auch das analoge Kommando »cancel«.
Zeigt ein »lpq« nach dem Absetzen eines Druckauftrags, dass auf dem Standarddrucker schon zu viele Aufträge anstehen, während ein anderer Drucker untätig scheint, löscht der Anwender den erteilte Druckjob nicht, sondern verschiebt ihn bei Cups mit »lpmove« in die andere Wartschlange.
Wenn Anwender aus Applikationen heraus drucken, sind sie weitgehend von diesen abhängig. Viele bieten eigene Druckdialoge an und leiten die Ausgaben an »lpr« weiter. Dies lösen die Anwendungen unterschiedlich komfortabel, sodass mittelfristig der Trend dahin geht, Druckdialoge zu nutzen, die der Desktop bereitstellt. Gnome und KDE haben dazu Lösungen im Angebot und viele Anwendungen, darunter Open Office, nutzen sie schon. Wenn sie beispielsweise auf Cups basieren, dürfen die Anwender ihren Drucker aus einem Menü auswählen und sich die Papiersorte, ein- oder doppelseitiges Drucken oder die Anzahl der Kopien aussuchen.
Kaum noch ein aktueller Drucker ist in der Lage, reinen Text direkt zu drucken. Daher konvertieren Tools wie »mpage« solche Dateien und machen daraus gleich einen Druckauftrag. Als Nebeneffekt fassen sie mehrere Textseiten auf einem Blatt Papier zusammen. Das neuere »enscript« geht noch einen Schritt weiter. Es beherrscht auch das sprachsensitive Hervorheben und Auszeichnen der übergebenen Dateien. So druckt es Schlüsselwörter beispielsweise fett oder kursiv. Einige solcher Filter genannten Programme listet Tabelle 2 auf.
|
Tabelle 2: |
||
|---|---|---|
|
Dateifilter |
Paket |
Bedeutung |
|
mpage |
mpage |
Druckt mehrere Seiten pro Blatt auf einem |
|
enscript |
enscript |
Konvertiert Textdateien nach Postscript, HTML usw. |
|
diffpp |
enscript |
Pretty-Printing von »diff«-Ausgaben mit |
|
a2ps |
a2ps |
Formatiert Dateien für einen Postscript-Drucker |
|
card |
a2ps |
Druckt Referenzkarte von Programm-Optionen |
|
pdiff |
a2ps |
Erzeugt einen Dateivergleich |
|
psnup |
PSUtils |
Mehrere Seiten pro Blatt |
|
psselect |
PSUtils |
Seitenauswahl aus einer Postscript-Datei |
|
psbook |
PSUtils |
Verändert die Reihenfolge von Seiten einer |
Schöner Drucken
Fürs schöne Drucken bieten Cups\’ »lpr« oder »lp« mit der Option »-o« eingeschränkte Möglichkeiten – sofern der Drucker sie beherrscht. Welche das sind, zeigt »lpoptions -l« an. Von der Kommandozeile aus lässt sich »a2ps« bedienen (Tabelle 3). Das mächtige Werkzeug bietet viele Hilfen, die dem Benutzer im Alltag das Drucken erleichtern. Das LPI geht in seinen Prüfungen besonders auf dieses Tool ein. Dokumentation zum Tool liefert »info a2ps«. Insgesamt bieten jedoch alle Werkzeuge, also »mpage«, »enscript« und »a2ps«, vergleichbare Grundfunktionen wie das Drucken von aussagekräftigen Kopf- und Fußzeilen zu einem Druckauftrag oder des Namens und Ausdruckdatums.
|
Tabelle 3: |
|
|---|---|
|
Option |
Bedeutung |
|
-P Drucker |
Name des Ausgabedruckers |
|
-o Datei |
Statt auf den Drucker eine Postscript-Datei schreiben |
|
-M Papierformat |
Wahl des Papierformats |
|
-P Display |
Kein Ausdruck, sondern Vorschau mit »gv« |
|
-C |
Äquivalent zu »–line-numbers=5« |
|
–line-numbers=Ganzzahl |
Zeilennummer aller angegebenen Zeilen einfügen |
|
-u Wasserzeichen |
Hinterlegt einen Text als Wasserzeichen, per Default |
|
-B |
Kein Seitenkopf |
|
–{center,left,right}-title=Text |
Seitentitel; ist kein Text angegeben, erscheinen |
|
–footer=Text |
Mittelteil der Fußzeile |
|
–{left,right}-footer=Text |
Linker oder rechter Teil der Fußzeile |
|
-E Sprache |
Sprachsensitive Hervorhebung |
|
-1 oder -2 |
Ein oder zwei Seiten pro Blatt |
Eine etwas andere Ausrichtung haben die Programme aus dem Werkzeugkasten des Pakets »PSUtils«. Zu den praktischen Helfern gehören »psselect«, es extrahiert eine Seitenauswahl aus einem PS-Dokument und erzeugt aus ihnen eine neue Postscript-Datei, »psnup«, das wie »mpage« mehrere Seiten auf einem Blatt zusammenfasst, und »psbook«, das Seiten zum Drucken von Booklets oder Büchern neu anordnet.
Mit »lpc« von LPRng lässt sich durch Optionen oder interaktive Befehle der Daemon »lpd« steuern. Seine Cups-Implementation ist eine verkleinerte Version. Mit »lpc status« erlaubt sie es nur, den Zustand einer Druckerwarteschlange abzufragen. Ohne Option startet »lpc« interaktiv, steuerbar sind die Warteschlangen, die das Drucksystem lokalen oder entfernten Druckern zuordnet.
Mit »start« und »stop« aktiviert der Admin einen Drucker oder schaltet ihn aus. Die Warteschlangen bleiben weiter in Betrieb. Neue Aufträge nimmt der Daemon weiterhin entgegen, aktive führt er zu Ende. Diese Befehle eignen sich für kurze Wartungsarbeiten am Drucker.
Will der Administrator eine Warteschlange dauerhaft hoch- oder runterfahren, nutzt er »enable« und »disable«. In eine deaktivierte Queue kann zwar niemand neue Aufträge einstellen, aber Drucker führen alte noch aus.
Daemons beschwören
Der Befehl »up« ist eine Abkürzung für »enable« und »start«, entsprechend wirkt »down« wie »disable« und »stop«. Das ist der benutzerfreundliche Weg, einen Drucker aus dem System zu nehmen, nachdem die Warteschlange geleert ist. Das Leeren gelingt mit »clean«, aktive Aufträge führt der Daemon noch zu Ende. Das Kommando »topq« erlaubt es Root, die Reihenfolge von Druckaufträgen innerhalb einer Schlange zu verändern. Die hinter dem Befehl angegebene Jobnummer stellt der Daemon an den Kopf der Warteschlange.
Während LPRng Drucker und die ihnen zugeordneten Warteschlangen zentral mit »lpc« verwaltet, sind diese Aufgaben unter Cups auf die Kommando-Zwillinge »cupsenable« und »cupsdisable« sowie auf »accept« und »reject« verteilt.
Drucker einrichten
Wer einen Drucker in Betrieb nehmen will, hat zwei Dinge zu tun: Erst installiert und startet der Admin den Daemon, anschließend kümmert er sich darum, die spezifischen Eigenschaften des Druckers einzurichten. Für den ersten Schritt reichen die meisten Linux-Distributionen eine helfende Hand durch vorkonfigurierte Pakete. Bei einer Installation aus den Quellen (Cups [3], LPRng [4]) sind die beiliegenden Anleitungen genau zu beachten, denn sie dulden meist kein anderes System neben sich. Beide Systeme startet und stoppt der Systembetreiber typischerweise über Init-Skripte (Abbildung 2). Durch »lpstat -d« prüft er den Erfolg seiner Tätigkeiten.

Abbildung 2: Drucksysteme – hier ist Cups im Bild – lassen sich durch Init-Skripte starten und stoppen. Ein Symlink in »/etc/init.d« fixiert die Einstellung.
Um Cups zu konfigurieren und als zweiten Schritt einen Drucker einzurichten, bedient sich der Admin der Hilfe von »lpadmin«. Das ist sogar per Browser möglich, ein Frontend bietet Cups unter http://localhost:631/admin/ an.
Treiberdateien
Für die Zusammenarbeit mit einem Drucker benötigt Cups als Treiber eine PPD-Datei (Postscript Printer Description). Sie beschreibt alle Fähigkeiten des Geräts in Textform. Je nach Gerätetyp ist etwas Recherche nötig, um die PPD-Datei zu finden. Cups selbst listet durch »lpinfo -m« alle installierten PPD-Dateien auf. Da dies ziemlich viele sind, grenzt »grep« die Suche nach einem Gerätemodell ein. Wer so nicht fündig wird, dem hilft die Foomatik-Datenbank weiter: Sie erlaubt eine Suche nach Hersteller oder Druckermodell [5]. Einige Hersteller bieten selbst PPD-Dateien an.
Hat der Admin einen passenden Treiber gefunden, richtet er ihn mit »lpadmin« ein (Listing 1). Das Argument »-p« bezeichnet den Namen (also die Warteschlange) des Druckers, »-L« seinen Standort und »-D« eine Textbeschreibung. Die Option »-v« legt das Kommunikationsprotokoll und die Adresse des Geräts in Form eines URI (Uniform Resource Identifier) fest. »lpinfo -v« zeigt alle Möglichkeiten an. Mit Hilfe eines Browsers auf [http://localhost:631/printers/asok?op=print-test-page] testet der Admin zum Beispiel den Drucker »asok«. Weil »lpadmin -x Drucker« das angelegte Gerät wieder löscht, sind solche Experimente mit Optionen und PPD-Dateien problemlos möglich.
|
Listing 1: Drucker mit |
|---|
01 # lpinfo -m | grep HP | grep 2605 02 HP/Color_LaserJet_2605-Postscript.ppd.gz HP Color LaserJet 2605 Foomatic/Postscript 03 manufacturer-PPDs/hp/HP_Color_LaserJet_2605.ppd.gz HP Color LaserJet 2605 Postscript 04 manufacturer-PPDs/hplip/HP_Color_LaserJet_2605.ppd.gz HP Color LaserJet 2605 Postscript 05 # zcat `locate HP/Color_LaserJet_2605-Postscript.ppd.gz` | head -n 40 06 # lpadmin -p asok -m "HP/Color_LaserJet_2605-Postscript.ppd.gz" -v "socket://192.168.2.157" -D "HP Color LaserJet 2605" -L "Am Schreibtisch" 07 # lpstat -a 08 asok akzeptiert Anfragen seit Mi 06 Feb 2008 18:55:47 CET |
Die Printcap
Was für Cups die PPD-Dateien und »lpadmin«, das ist für LPRng die Datei »/etc/printcap«. Sie enthält alle Informationen über die Eigenschaften der Drucker, die »lpd« kennt, spezifiziert, ob sie lokal oder übers Netz angeschlossen sind, und legt Name und Pfad zu jeder Warteschlange fest. Sie dürfen zusätzlich auf einen Filter für die Vorverarbeitung von Aufträgen verweisen.
Für jede neue Zeile legt die Datei eine Warteschlange als Synonym für einen Drucker an. Sie beginnt mit dem Namen der Queue, es folgen Kommentare, dann eine Liste von Direktiven, die jeweils durch Doppelpunkte getrennt sind. Backslashes brechen den Eintrag bei Bedarf um – wichtig ist dann der Tabulator am Anfang der Folgezeile – und machen ihn lesbarer. Da es eine Vielzahl möglicher Direktiven gibt – »man 5 printcap« kennt über drei Dutzend -, können Konfigurationen recht komplex werden. Eine Auswahl an Direktiven und ihre sinnvolle Belegung listet der Kasten “Beispiel eines Printcap-Eintrags”.
Cups legt je nach Wert der »printcap«-Direktive in »cupsd.conf« ebenfalls eine Version von »/etc/printcap« an, aktualisiert diese bei jedem Aufruf von »lpadmin« und schreibt in sie hinein:
asok|HP Color LaserJet 2605:rm=ratbert.local:rp=asok:
Je nach den Einstellungen in »/etc/cups/printers.conf« bedient es sich der Hilfe von »/etc/cups/cupsd.conf«.
|
Beispiel eines |
|---|
|
Die Datei »/etc/printcap« legt die Eigenschaften eines Druckers und der ihm zugeordneten Warteschlange fest: # Bürodrucker HP ColorLaserJet 2605: hpclj|hpclj2605|Bürodrucker: :lp=/dev/lp0: :sd=/var/spool/lpd/hpclj2605: :lf=/var/spool/lpd/hpclj2605/log: :if=/var/lib/apsfilter/bin/hpclj2605: :mx#0:sh: Es ist Usus, jeden Eintrag mit einem Kommentar einzuleiten. Der eigentliche Eintrag beginnt mit dem Drucker- und Warteschlangennamen, dem weitere durch »|« getrennte Druckerbeschreibungen folgen können. Mehrere Felder dürfen in einer Zeile stehen. Neben Feldern mit String-Werten gibt es auch Direktiven, die Ganzzahlen verlangen. »mx« etwa legt die maximale Größe (Maximum Filesize) eines Druckauftrags in Blöcken fest, 0 bedeutet keine Einschränkungen. Die Direktive »sh« schaltet die Bannerseite ab (Suppress Header). Tabelle 4 nennt die wichtigsten Direktiven. Ein minimaler lokaler Eintrag für einen Netzwerkdrucker sieht wie folgt aus: # Laser Printer HPLJ5d: lj5d|hplj5d|HP-Drucker in Raum 1.123: :lp=:rm=labserv:rp=hplj5d: Wesentlich sind hier die Angabe des Rechners, an dem der ferne Drucker angeschlossen ist (»rm« steht für Remote Machine), sowie der Name der dortigen Warteschlange (»rp« für Remote Printer). Das Feld des lokalen Geräts darf leer bleiben. |
Schlangennester
Bei LPRng liegen die Verzeichnisse für Warteschlangen unter »/var/spool/lpd«. Entsprechend den Printcap-Einträgen verwaltet »lpd« dort wartende Druckaufträge, Protokolldateien oder Accounting-Einträge für jeden Drucker in einem eigenen Verzeichnis. »lpd« erwartet dieses Verzeichnis und dazu passende Besitzverhältnisse. LPRng sieht den Standard »daemon« für Besitzer und Gruppe vor, manche Distributionen stellen für beide abweichend »lp« oder ähnliche Benutzer ein. Ein Blick auf den aktuellen Besitzer (Abbildung 3) schafft Klarheit. So vorbereitet kann der Test mit »lpc up PSneu« und »lpr -PPSneu« beginnen.
Bei Cups befinden sich die Warteschlangen unter »/var/spool/cups«. Das System legt dort jede Auftragsbeschreibung in der Datei »cAuftragsnummer« und den eigentlichen Druckauftrag in »dAuftragsnummer-Dateinummer« ab.
Gefiltert
Filter bringen einen Auftrag in ein dem Drucker verständliches Format. Unter LPRng – es bringt seinen eigenen Filter »ifhp« mit – sind die Klassiker Magicfilter [6] und Apsfilter [7] beliebt. Als Input-Filter mit der »if«-Direktive innerhalb der Printcap eingetragen bestimmen sie ähnlich dem Befehl »file« den Content-Typ der Eingabedatei, um die passende Konvertierungsroutine aufzurufen.
Cups dagegen ermittelt in zwei Schritten, wie Daten zu verwandeln sind: Es bestimmt den Mime-Typ anhand von Erkennungsregeln aus »mime.types« (Listing 2). Den Typ erkennt es durch die rechts stehenden Tests. Dann ruft Cups einen Konverter aus »mime.convs« (Listing 3) auf.
Jede Zeile der Datei besteht aus vier Feldern: Mime-Typ des Quell- und des Zieldokuments, Aufwandsmaß für die Umwandlung sowie der Name des Filters. Lässt sich eine Datei auf mehrere Weisen konvertieren, entscheidet das geringere Maß. Wer eine Datei drucken will, zu der Cups keinen passenden Filter findet, wird gewarnt und trägt eine Regel nach.
|
Listing 2: Ausschnitt aus |
|---|
01 application/pdf pdf string(0,%PDF) 02 application/postscript ai eps ps string(0,%!) string(0,<04>%!) contains(0,128,<1B>%-12345X) + 04 (contains(0,4096,"LANGUAGE=POSTSCRIPT") 05 contains(0,4096,"LANGUAGE = Postscript") 06 contains(0,4096,"LANGUAGE = PostScript") 07 contains(0,4096,"LANGUAGE = POSTSCRIPT") 08 (contains(0,4096,<0a>%!) + !contains(0,4096,"ENTER LANGUAGE"))) 10 application/x-dvi dvi string(0,<F702>) 11 application/mozilla-ps ps (string(0,%!) + contains(30,200,"Creator: Mozilla PostScript")) 13 application/netscape-ps ps (string(0,%!) + contains(30,200,"Creator: Mozilla (NetScape)")) |
|
Listing 3: Ausschnitt aus |
|---|
01 application/pdf application/postscript 33 pdftops 02 application/postscript application/vnd.cups-postscript 66 pstops 03 application/netscape-ps application/postscript 33 ogonki 04 application/mozilla-ps application/postscript 33 pswrite 05 application/mozilla-ps application/vnd.cups-postscript 66 pstops |
Es druckt nicht
Troubleshooting tut not: Wer etwa die Konfiguration via Befehlszeile geändert hat, teilt dies dem Drucksystem durch »/etc/init.d/cups restart« mit. Ob der Daemon überhaupt aktiv ist, zeigt die Suche in der Ausgabe von »lpstat« oder »ps -ef« nach »cupsd« oder »lpd«.
Während LPRng für jeden Drucker eine eigene Fehlerdatei führt, schreibt Cups Protokoll über gedruckte Seiten, Zugriffe und Fehler. Wo das System sie ablegt und wie detailliert es protokolliert, legt »/etc/cups/cupsd.conf« fest. Angaben über das Starten und Stoppen finden sich im Protokoll des Syslog-Dienstes, etwa in »/var/log/messages«.
Der Daemon »cupsd« ist auch als Vordergrundprozess von der Befehlszeile aufrufbar, »cupsd -h« oder ein Blick in die Manpage helfen. Detaillierte Möglichkeiten zum Debugging bieten auch die LPRng-Programme, die auf der Kommandozeile mit »-D Option« wählbar sind. Außerdem verfügt »lpc« über ein eigenes Debug-Subkommando. Unter LPRng ist die korrekte Angabe der Besitzer und der Zugriffsrechte der Spool-Dateien beliebte Stolpersteine. Die im LPRng-Paket enthaltene Routine »checkpc« hilft Fehler aufspüren.
Bei Problemen mit dem Drucken übers Netz sollten Anwender das Drucksystem zuerst an dem Rechner testen, an dem der Drucker tatsächlich angeschlossen ist. Zudem könnten Firewalls so restriktiv eingestellt sein, dass sie die Druckprotokolle nicht zulassen.
Erster Anlaufpunkt für die Unterstützung von Druckern und Treibern ist das Projekt Linuxprinting [8]. Als Referenz zu LPRng gilt [9]. Aktuelle Informationen zu Cups finden sich auf der Homepage des Projekts [10]. Nicht zuletzt hält [11] alle nötigen Informationen über die eigene Cups-Installation bereit. Damit ist jeder Admin gerüstet, um nicht unter Druck zu geraten. (mg)
|
Infos |
|---|
|
[1] RFC 2568, Internet Printing Protocol: [http://tools.ietf.org/html/rfc2568] [2] RFC 1179, Line Printer Daemon Protocol: [http://tools.ietf.org/html/rfc1179] [3] Cups-Sourcen:[http://www.cups.org/software.php] [4] LPRng-Sourcen:[http://www.lprng.org/downloads.html] [5] Openprinting-Datenbank: [http://www.openprinting.org/printer_list.cgi] [6] Magicfilter: [http://www.pell.portland.or.us/~orc/Code/magicfilter/] [7] Apsfilter: [http://www.apsfilter.org] [8] Linuxprinting.org:[http://www.linuxprinting.org] [9] LPRng: [http://www.lprng.org/LPRng-Reference/LPRng-Reference.html] [10] Cups: [http://www.cups.org] [11] Lokale Cups-Hilfe:[http://localhost:631/help/] |
|
Der Autor |
|---|
|
Wolfgang Drotschmann hat in Bonn Informatik studiert. Wenn er sich nicht mit freier Software oder dem Linuxtag e. V. beschäftigt, trainiert er für seine Zeiten im Langstreckenlauf. |






