| BSD | AT&T | Bedeutung |
|---|---|---|
| lpd | lpsched | Druckdämon |
| lpr | lp | Druck absenden |
| lpq | lpstat | Status der Druckerwarteschlange ermitteln |
| lprm | cancel | Entfernen eines Jobs aus der Druckwarteschlange |
Empfängt ein lpd einen Druckauftrag über TCP/IP, sieht er in der Datei /etc/hosts.lpd nach, ob der Sender überhaupt berechtigt ist, auf diesem Rechner zu drucken. Die Datei hosts.lpd darf kein öffentliches Schreibrecht haben. Auch alle Rechner, die in der /etc/hosts.equiv stehen, haben Druckrecht. Beim Eintrag des Hostnamen ist darauf zu achten, daß der erste Name des Rechners aus der /etc/hosts verwendet wird, da er sonst nicht erkannt wird.
Ein lpd verwendet zum Senden eines Druckauftrages einen Port aus einem Bereich, den nur ein unter root laufender Prozeß erhalten kann. Dies prüft der lpd auf der Gegenseite, um sicher zu sein, daß ihm nicht irgendwer Daten unterschieben will. Paßt alles, sendet der Quellrechner, wie groß die Datei ist und die Steuerdaten. Der lpd nimmt sie entgegen. Anschließend werden die Daten übergeben. Der lpd des Zielrechners überprüft noch einmal die Länge und meldet dann sein Ok. Jetzt wird die Spooldatei des Quellrechners gelöscht. Ging irgendetwas schief, wird eine Fehlermeldung gesendet und der Zielrechner löscht alle bisher empfangenen Daten. Die Übertragung beginnt von vorn.
Unter Linux:
lpr -P<printer> <Dateiname>
Unter SCO:
lpr -d<printer> <Dateiname>
Unter Windows NT und OS/2 (PCTCP):
lpr -S<hostname> -P<printername> <Dateiname>
<Hiesiger Druckname>[|<Weitere Beschreibung>]:\
:lp=:rm=<Name des Remote Hosts>:rp=<Druckname auf Remote Host>:\
:sd=<Pfadname des lokalen Spoolverzeichnisses>:
Beispiel:
laser|300 dpi Laser|Registratur:\
:lp=:rm=reg_pc01:rp=lp:\
:sd=/var/spool/lpd/laser:
Der Eintrag lp, der normalerweise das Ausgabedevice bezeichnet, muß
für Remote-Drucken leer sein.
| Parameter | Bedeutung |
|---|---|
| sh | Banner abschalten |
| sf | Form-Feed abschalten |
| lpstat | zeigt den Zustand der Warteschlangen der Drucker an |
| cancel [Jobnummer] [Drucker] | Druckjob aus der Warteschlange entfernen |
| disable Drucker | Drucker aus dem Drucksystem auskoppeln |
| enable Drucker | Drucker in das Drucksystem einkoppeln |
Zunächst wird mit lpshut der Druckdämon lpsched heruntergefahren. Dann kann mit lpadmin konfiguriert werden. Anschließend wird lpsched wieder gestartet. Nur Solaris besteht darauf, daß lpsched während der Konfiguration läuft.
| -pPrinter | Druckername |
| -vDevice | Schnittstelle |
lpadmin -plaser -v/dev/tty01
Richtet einen Drucker namens laser auf dem Device /dev/tty01 ein.
Der Befehl lpstat gibt eine Liste über den Status der verschiedenen Drucker aus.
Queue Dev Status Job Files User PP % Blks Cp Rnk
------ ----- -------- --- --------------- ---------- ---- -- ----- -- ---
lp0 lp0 RUNNING 918 STDIN.14846 willemer 5 43 10 1 1
QUEUED 919 STDIN.14593 willemer 3 1 2
QUEUED 920 maskexpj wagener 2 1 3
QUEUED 921 STDIN.14596 willemer 2 1 4
QUEUED 922 STDIN.21790 willemer 1 1 5
QUEUED 923 lunget wagener 3 1 6
bsh bshde READY
Um einen Text aus der Warteschlange zu entfernen, wird der Befehl cancel verwendet. Es ist natürlich nur möglich, eigene Drucke wieder zu entfernen. Fremde Ausdrucke kann nur der jeweilige Besitzer oder der Systemverwalter beseitigen.
Ist ein Drucker durcheinander geraten, erkennt man dies beim lpstat am Status DOWN. Um diesen nach Beseitigung der Störung wieder in Betrieb zu nehmen, wird das Kommando enable Drucker verwendet.
Während Polling die CPU mit ständigem Beobachten belastet, findet beim Interrupt nur dann eine Aktion statt, wenn der Ablauf das erfordert. Unter Einzelplatzsystemen ist der Unterschied nicht signifikant. Unter Multitasking-Systemen, insbesondere bei mehreren Druckern sollte unbedingt eine interruptgetriebene Ansteuerung verwendet werden.
Ein normaler PC ist mit einer parallelen Schnittstelle für einen Drucker ausgestattet. Nach MS-DOS Tradition wird sie LPT1 genannt. Ihr ist der Interrupt 7 zugeordnet.
Ein zweiter Parallelanschluß (LPT2) ist mit dem Interrupt 5 vorgesehen. Aufgrund der Interrupt-Knappheit in einem PC wird dieser Interrupt allerdings gern für andere Peripherie verwendet, da nur wenige PCs wirklich zwei Druckerschnittstellen besitzen.
Ein dritter Anschluß (LPT3) ist zwar ansteuerbar, hat aber keinen Interrupt zugeordnet.
tunelp /dev/lp1 -i7 tunelp /dev/lp2 -i5
Hier wird Schnittstelle LPT1 auf den Interrupt 7 und LPT2 auf den Interrupt 5 gesetzt.
mkdev rlp
Unter Windows NT kann als lpd-Server auftreten. Unter Systemkonfiguration-Netzwerk kann als zusätzlicher Dienst der "Microsoft TCP/IP Druckdienst" hinzugefügt werden.
Um einen lpr-Client einzurichten, wird ein lokaler Arbeitsplatzdrucker installiert. Wenn der Assistent nach dem Port fragt, kann man einen neuen Port anfordern. Dort findet sich in der Liste auch der LPR-Port. Gibt man diesen an, fragt Windows nach dem Server und dem dortigen Namen des Druckers. Die Eingaben werden sofort überprüft. Daneben verfügt Windows NT auch über die Befehle lpr und lpq auf der Konsole (MS-DOS Eingabeaufforderung).
minstart lpdEin detach hat zu erheblichen Performance-Einbrüchen geführt. Weitere Verbesserungen der Performance erreicht man, wenn in der Datei \pctcp\etc\pctcp.ini bei Angabe der Schnittstelle der Zusatz /redirected angehängt wird. So werden die Daten block- und nicht buchstabenweise verarbeitet. Beispiel:
[Epson] device = LPT1/redirected
| Homepage | (C) Copyright 1999 Arnold Willemer |