Beginnen wir zunächst mit der Bedeutung des Begriffs „Spoolen“: Manchmal ist die Größe eines Dokuments größer als der Druckerspeicher, sodass durch „Druckerspoolen“ mehrere Dokumente an einen Drucker gesendet und alle diese Dokumente in eine Warteschlange gestellt werden können.
Nun gibt es unter Unix zwei Drucksysteme:
- Das BSD-Spooling-System verwendet einen
lpd
Daemon, um die Druckaufträge zu planen.
- Das SVR4-Spooling-System verwendet
lpsched
als Scheduler.
Jeff Lessems USAIL: Unabhängiges Lernen in der Unix-Systemadministration enthält einen Abschnitt zum Drucken unter Unix, der einen guten Überblick über die BSD- und SVR4-Systeme bietet:
Das BSD-Spooling-System
Es erstreckt sich gut auf große, heterogene Netzwerke, sodass viele Computer Drucker gemeinsam nutzen können.
Unter dem BSD-Spooling-System wird der Zugriff auf Drucker vom lpd
Daemon und dem lpr
Programm gesteuert . lpr
ist das einzige Programm auf einem BSD-System, das Dateien zum Drucken in die Warteschlange stellen kann.
lpr
Akzeptiert zu druckende Daten, legt sie in einem Spool-Verzeichnis ab und benachrichtigt den lpd
Daemon. lpr
Erstellt für jeden Druckauftrag zwei Dateien, eine Steuerdatei (cfxxx) und eine Datendatei (dfxxx) im Spool-Verzeichnis, wobei xxx eine eindeutige Auftrags-ID angibt. Die Steuerdatei enthält die Informationen zur Abwicklung des Druckauftrags, einschließlich der Identität des Eigentümers. Die Datendatei enthält die tatsächlich zu druckenden Daten.
Der lpd
Dämon überprüft die /etc/printcap
Datei, um den Zieldrucker zu identifizieren. Wenn der Zieldrucker ein lokales Gerät ist, stellen Sie lpd
sicher ,
dass in dieser Druckwarteschlange eine Kopie des lpd
Dämons ausgeführt wird. Andernfalls lpd
wird eine Verbindung zum Remote-Host hergestellt, an den der Drucker angeschlossen ist, und die Steuerungs- und Datendatei werden an diesen übertragen.
Druckaufträge werden nach lpd
FIFO (First-In, First-Out) geplant. Der Systemadministrator kann jedoch den Befehl lpc verwenden, um die Priorität der Jobs in der Druckwarteschlange zu ändern.
Das SVR4-Spooling-System wird von Solaris und HP-UX verwendet. Es bietet mehr Kontrolle und Flexibilität, wurde jedoch nicht für den Netzwerkdruck entwickelt und ist komplizierter einzurichten.
Unter dem SVR4-Spool-System lp
akzeptiert der Befehl die zu druckenden Daten und kopiert sie in das dem Ziel zugeordnete Spool-Verzeichnis. Das Ziel besteht aus einem Druckernamen und einer optionalen Angabe einer Klasse, zu der der Drucker gehört. Wenn der angegebene Drucker ausgelastet ist, wird der Auftrag an einen anderen Drucker in derselben Klasse gesendet. Das Spool-Verzeichnis ist normalerweise /var/spool/lp/request/printer-name
und die Druckdatei erhält einen eindeutigen Namen, um sowohl den Auftrag als auch den Benutzer zu identifizieren.
Der Zugriff auf den Drucker wird vom lpsched
Dämon gesteuert . Die Aufträge werden aus dem Spool-Verzeichnis abgerufen und an das entsprechende Ziel gesendet, sobald sie verfügbar sind. lpsched führt auch ein Protokoll, normalerweise in /usr/spool/lp/log
. Die Protokolldatei würde einen Fehler bei der Verarbeitung der Druckaufträge sowie den Benutzernamen anzeigen.
Siehe auch: Drucker und Druckerspooler - Befehle lp, lpstat und cancel | Tipps & Tricks für den IT-Blog