|
|
BSD-Unix: lpd, lpr, lpq und lprm
Die Datei /etc/printcapDie Datei /etc/printcap ist die Konfigurationsdatei für die Drucker im BSD-System. Hier werden alle von der Maschine erreichbaren Drucker definiert, ihre Warteschlangen und eventuelle Filter. Jeder Drucker wird in einer Zeile beschrieben. Da die Zeilen aber furchtbar lang würden, verwendet man den Backslash am Ende der Zeile. Dieser verlagert das Ende der Zeile auf die nächste Zeile. Die Beschreibung eines Druckers beginnt mit dessen Namen. Ein Drucker kann mehrere Namen haben, die man durch einen senkrechten Strich trennt. Diesen Mechanismus benutzt man auch gern für kurze Druckerbeschreibungen. Üblicherweise nennt man den Standarddrucker des Systems lp. Durch Doppelpunkte werden Attribute des Druckers abgetrennt. Die wichtigsten Einträge sind das Drucker-Device (lp), das Spoolverzeichnis (sd) und die Protokolldatei (lf). Beipielsweise ist der Standarddrucker auf meinem Linux-System folgendermaßen definiert:
lp|lp2|cljet5-a4-auto-color-300|cljet5 a4 auto color 300: :lp=/dev/lp0: :sd=/var/spool/lpd/cljet5-a4-auto-color-300: :lf=/var/spool/lpd/cljet5-a4-auto-color-300/log: :if=/var/lib/apsfilter/bin/cljet5-a4-auto-color-300: :mx#0:sh:sf: Der Hauptdruckername ist lp. Er druckt auf die erste parallele Schnittstelle des Computers /dev/lp0. Das Spooldirectory befindet sich unterhalb des Verzeichnisses /var/spool/lpd und wird nach dem Drucker benannt. Darin befindet sich auch die Protokolldatei mit dem Namen log. Der Eintrag hinter if bezeichnet den Druckerfilter, der in diesem Fall durch ein apsfilter-Skript realisiert wird. Der apsfilter sorgt für die Übersetzung der PostScript-Informationen in die druckereigene Steuerungssprache. Hinter dem apsfilter verbirgt sich letztlich GhostScript.
[Parameter der printcap-Datei]L|L
Parameter & Bedeutung
Ein Eintrag für einen Netzwerkdrucker unterscheidet sich von einem lokalen Drucker in erster Linie dadurch, dass das Druckdevice (lp) leer gelassen wird und der Zielhost (rm) und der Druckername auf dem Zielhost (rp) angegeben werden. Ein lokales Spoolverzeichnis ist dennoch notwendig, da der Druckinhalt zwischengespeichert werden muss, solange der Druckdämon auf der fernen Maschine noch keinen Vollzug meldet. Beispiel:
laser|300 dpi Laser|Registratur: :lp=:rm=reg_pc01:rp=lp: :sd=/var/spool/lpd/laser: Der fremde Rechner heißt reg_pc01 und der Druckername auf jenem Rechner ist lp.
Änderungen in der Datei /etc/printcap liest der Druckdämon
Arbeitsablauf des Druckdämons
Der
Es nutzt also gar nichts, einen nicht gewünschten Ausdruck dadurch zu beenden,
dass man den entsprechenden Druckdämon terminiert oder in wilder Panik die
Maschine herunterfährt. Im Gegenteil: Der Druck wird wieder ganz von vorn
begonnen. Um einen Ausdruck auf brutale Weise abzuwürgen, muss nach dem
Terminieren des
Wie man
Drucken über das Netz
Empfängt ein
Der Druckdämon Wenn man den Ablauf dieses Prozesses kennt, wird klar, dass die zigarettenschachtelgroßen Druckserver, die einen gewöhnlichen Drucker zum TCP/IP-Drucker aufwerten sollen, schwerlich das Protokoll einhalten können. An sich müssten sie die gesamten Daten zwischenspreichern, bis sie sicher sind, dass die Übertragung erfolgreich war. Da sie keine Festplatte besitzen, müssen sie den Kompromiss eingehen, dass sie vorab von einer korrekten Übertragung ausgehen und bereits ausdrucken, bevor die Daten komplett und bestätigt übertragen wurden.
Druckjobs administrieren
Die Druckjobverwaltung erfolgt über die Befehle
gaston# lpq lp is ready and printing Rank Owner Job Files Total Size active arnold 97 unix.ps 4591488 bytes Diese Meldung besagt, dass auf dem Drucker lp ein Job mit der Nummer 97 aktiv ist, den der Benutzer arnold gestartet hat. Die in Auftrag gegebene Datei heißt unix.ps und ist etwa 4,5 MByte groß.
Mit dem Befehl
gaston# lprm 97 dfA097gaston dequeued cfA097gaston dequeued Hier wird deutlich, dass ein Druck aus zwei Dateien besteht. Dies ist einmal die Steuerdatei, deren Name mit cf (control file) beginnt und zum anderen die Datendatei, deren Name mit df (data file) beginnt. Beide Dateien befinden sich im Spoolverzeichnis.
Um einen Drucker oder seine Warteschlange aus dem System zu entfernen,
verwendet man den Befehl
[lpc-Kommandos]L|L
Befehl & Wirkung
Mit dem Befehl
gaston# lpc topq lp 97
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|