"Line Printer Daemon". Zuständig für das Ausdrucken, Queueing.
Für jeden Drucker steht eine Zeile in /etc/printcap. Einzelne Elemente durch Doppelpunkt : getrennt. Bei mehrzeiligen Einträgen, obere Zeile durch Backslash \ abschließen und weitere Zeilen einrücken.
Namensangabe: Aliasnamen durch Pipe-Symbol | trennen, erster Name ist der Hauptname, letzter Name vollständiger Name.
lp-Drucker: Ein Drucker muss "lp" heißen. Das ist dann der Standard-Drucker.
hp|lp|HP LaserJet 4L:sh:sd=/usr/spool/lp1:lp=/dev/lp1:sf:
dj|HP DeskJet 500:sh:sd=/usr/spool/lp2:lp=/dev/lp2:sf:
hp2100|HP LaserJet 2100:sh:sf:lp=:rm=bud:rp=raw:sd=/usr/spool/lp3:
mkdir /usr/spool/lp2 chown lp /usr/spool/lp2 chgrp lp usr/spool/lp2 chmod 770 usr/spool/lp2
Die meistens benutzten Optionen sind in der "Gängig"-Spalte markiert.
| Gängig | Option | Funktion | Beispiel |
| af=<dateiname> | Name der Abrechnungsdatei für Accounting | ||
| ff=<zeichenkette> | Zeichenkette für Seitenvorschub | ||
| lf=<dateiname> | Dateiname des Log-Files | lf=/usr/spool/lp1/log.log | |
| lo=<dateiname> | Dateiname des Lock-Files | ||
| ja | lp=<device-name> | Name des Drucker-Devices. Muss für Netzwerk-Drucker leer sein (lp=) | lp=/dev/lp1 |
| mc#<anzahl> | Maximale Anzahl Kopien eines Druckjobs | ||
| ja | mx#<anzahl> | Maximal zu kopierende Größe eines Druckjobs in Blocks. mx#0 = unbegrenzt | mx#0 |
| pl#<anzahl> | Maximale Zeilenanzahl einer Druckseite für Zeilendrucker | ||
| pw#<anzahl> | Maximale Spaltenanzahl einer Druckseite für Zeilendrucker | ||
| px#<anzahl> | Maximale Breite einer Druckseite in Pixel | ||
| py#<anzahl> | Maximale Höhe einer Druckseite in Pixel | ||
| rg=<gruppenname> | Benutzergruppe, deren Mitglieder den Drucker benutzen dürfen | ||
| ja | rm=<hostname> | Hostname des Remote-Druck-Servers | rm=elayne |
| ja | rp=<druckername> | Druckername des anzusprechenden Druckers auf dem Remote-Druck-Server | rp=hplj |
| ja | sd=<verzeichnis> | Name des Spooling-Directory | sd=/usr/spool/lp1 (Siehe auch oben: "Anlegen des Spooling-Verzeichnisses") |
| st=<dateiname> | Name der Status-Datei. Wird im Spool-Verzeichnis angelegt. | ||
| tr=<zeichenkette> | Zeichenkette, die nach Abarbeitung der letzten Spool-Datei einer Queue ausgegeben wird (Trailer) | ||
| hl | Header Page Last: Wenn vorhanden, wird die Banner-Page nach dem Druckjob ausgegeben | ||
| rs | Restricted: Wenn vorhanden, dürfen nur die lokalen Benutzer den Drucker benutzen | ||
| rw | Read/Write: Drucker zum Lesen und Schreiben öffnen | ||
| sb | Short Banner: Verkürzt das Banner auf eine einzige Zeile | ||
| sc | Suppress Copy: Mehrfachausdruck eines Dokuments unterbinden | ||
| ja | sf | Suppress Feed: Unterdrückt den Formfeed am Ende eines Druckjobs | sf |
| ja | sh | Suppress Header: Unterdrückt den Ausdruck der Header- bzw. Banner-Seite | sh |
| ja | if=<filterprogramm> | Filterprogramm. Erwartet Eingabe auf STDIN, die STDOUT-Ausgabe des Filterprogramms wird an den Drucker gesendet |
Mit dem lpr-Programm können Daten an den Drucker gesendet werden. lpr sendet alles, was auf STDIN eingeht auf den Drucker
lpr < filetoprint
lpr -P hp2100 < filetoprint
cat filetoprint | lpr -P ps
Mit der Option -P kann der anzusteuernde Drucker angegeben werden. Default ist "lp".
lpq
lpq -P hp2100
Listet die Druck-Queue auf.
Angabe der per lpq ermittelten Job-Nummer erforderlich
lprm 13
lprm -P ps 27
Da lprm die Dateinamen der entfernten Jobs anzeigt, ist eine weitere Überprüfung des Erfolgs mit lpq erforderlich.
Komplettes Verwaltungstool: Druckjobs abbrechen/löschen, Queues anhalten/starten, Daemon anhalten/neu starten, Statusinformationen abrufen
Hilfe kann mit ? angefordert werden.
Per "if"-Eintrag in der printcap-Datei kann vor das Drucken ein Filter gesetzt werden. Dies ist ein Programm, das den Druckjob auf STDIN erhält und dessen STDOUT-Ausgabe an den Drucker gesendet wird.
Der einfachste Filter, der die Daten einfach 1:1 weiter leitet, sieht so aus:
#!/bin/sh cat
Rechte: Ein solches Filterprogramm benötigt Ausführungsrechte (555).
In dieser Datei werden die Hosts eingetragen, die auf die Drucker eines lpd zugreifen dürfen.
Siehe gesondertes Samba-File.