NAME¶
backend - CUPS Backend-Übertragungsschnittstellen
SYNOPSIS¶
backend
backend Auftrag Benutzer Titel Anzahl-Kopien Optionen [
Dateiname
]
BESCHREIBUNG¶
Backends sind eine besondere Art von
filter(7), die verwendet werden, um
Daten zu verschiedenen Geräten auf dem System zu senden und
entsprechende Geräte zu ermitteln.
Wie Filter müssen Backends in der Lage sein, aus Dateinamen auf der
Befehlszeile oder von der Standardeingabe zu lesen, die Standardeingabe in
eine temporäre Datei zu kopieren, wie dies von der physischen
Schnittstelle gefordert wird.
Der Befehlsname (argv[0]) wird auf die Geräte-URI des Zieldruckers
gesetzt. Beginnend mit CUPS 1.1.22 wird jede Authentifizierungsinformation aus
argv[0] entfernt, daher wird Backend-Entwicklern empfohlen, die
Umgebungsvariable DEVICE_URI zu verwenden, wennimmer
Authentifizierungsinformationen benötigt werden. Das CUPS-API
enthält eine Funktion
cupsBackendDeviceURI zum Ermitteln der
korrekten Geräte-URI.
Rückgeleitete Daten vom Gerät sollten an die Filter für die
Aufträge weitergeleitet werden, indem auf Dateideskriptor 3 geschrieben
wird. Das CUPS-API enthält für diesen Zweck die Funktion
cupsBackChannelWrite.
WARNING¶
CUPS-Backends wurden im Allgemeinen nicht dafür entwickelt, um vom
Benutzer direkt aufgerufen zu werden. Neben der Geräte-URI (argv[0] und
der Umgebungsvariablen DEVICE_URI, die die Geräte-URI enthält)
erwarten die CUPS-Backends auch bestimmte Umgebungsvariablen und
Dateideskriptoren und laufen typischerweise auch in einer Benutzersitzung, die
(unter OS X) zusätzlichen Beschränkungen unterliegt, die die
Ausführung betreffen. Backends können auch mit
eingeschränkten Rechten installiert werden (0500 oder 0700), die dem
Auftragsplaner mitteilen, sie als Benutzer »root« statt des
unprivilegierten Benutzers (typischerweise »lp«)
auszuführen.
Sofern Sie kein Entwickler sind und nicht wissen, was Sie tun, führen Sie
kein Backend direkt aus. Verwenden Sie stattdessen die Programme
lp(1)
oder
lpr(1), um einen Druckauftrag zu übersenden oder das
Programm
lpinfo(8), um verfügbare Drucker über ein
Backend abzufragen. Die einzige Ausnahme ist das SNMP-Backend - lesen Sie
snmpbackend(8) für weitere Informationen.
GERÄTE-ERMITTLUNG¶
Beim Aufruf ohne Argumente sollte das Backend die Geräte und
unterstützten oder beworbenen Schemata auf Stdout aufführen. Die
Ausgabe besteht aus null oder mehr Zeilen, die in einer der folgenden Formen
vorliegen:
device-class scheme "Unknown" "device-info"
device-class device-uri "device-make-and-model" "device-info"
device-class device-uri "device-make-and-model" "device-info" "device-id"
device-class device-uri "device-make-and-model" "device-info" "device-id" "device-location"
Das Feld
device-class enthält einen der folgenden Werte:
- direct
-
Die Geräte-URI bezieht sich auf spezielle Geräte mit direktem
Zugriff ohne Optionen, wie z.B. parallele, USB- oder
SCSI-Geräte.
- file
-
Die Geräte-URI bezieht sich auf eine Datei auf dem
Speichermedium.
- network
-
Die Geräte-URI bezieht sich auf ein vernetztes Gerät und folgt
der allgemeinen Form für vernetzte URIs.
- serial
-
Die Geräte-URI bezieht sich auf ein serielles Gerät mit einer
konfigurierbaren Baudrate und anderen Optionen. Falls die
Geräte-URI einen Baud-Wert enthält, repräsentiert er
die maximale vom Gerät unterstützte Baudrate.
Das Feld
scheme stellt das vom Backend unterstützte URI-Schemata
bereit. Backends sollten diese Form nur verwenden, wenn das Backend jede dem
Schemata folgende URI unterstützt. Das Feld
device-uri
spezifiziert die komplette URI, die bei der Kommunikation mit dem Gerät
verwandt werden soll.
Das Feld
device-make-and-model spezifiziert die Marke und das Modell des
Gerätes, z.B. »Beispiel Foojet 2000«. Falls die Marke und
das Modell nicht bekannt ist, müssen Sie »Unknown«
melden.
Das Feld
device-info spezifiziert zusätzliche Informationen
über das Gerät. Typischerweise enthält es die Marke und
das Modell zusammen mit der Port-Nummer oder der Netz-Adresse, z.B.
»Beispiel Foojet 2000 USB #1«.
Das optionale Feld
device-id spezifiziert die
IEEE-1284-Geräte-ID-Zeichenkette für das Gerät, die zur
Auswahl des passenden Treibers verwandt wird.
Das optionale Feld
device-location spezifiziert den physischen Standort
des Geräts. Es wird oft dazu verwandt, die Drucker-Standort-Attribute
vorab zu belegen, wenn ein Drucker hinzugefügt wird.
RECHTE¶
Backends, denen die Ausführungsrechte für »world«
(andere) fehlen, werden als Benutzer root ausgeführt. Andernfalls
läuft das Backend unter einem unprivilegierten Benutzerkonto,
typischerweise »lp«.
EXIT-CODES¶
Die folgenden Exit-Codes sind für Backends definiert; C API-Konstanten,
die in der Header-Datei <cups/backend.h> definiert sind, sind in
Klammern definiert:
- 0 (CUPS_BACKEND_OK)
-
Die Druckdatei wurde erfolgreich an das Gerät oder den entfernten
Server übertragen.
- 1 (CUPS_BACKEND_FAILED)
-
Die Druckdatei wurde nicht erfolgreich zum Gerät oder entfernten
Server übertragen. Der Auftragsplaner (Scheduler) wird daraufhin
den Auftrag abbrechen, den Auftrag erneut versuchen oder die Warteschlange
anhalten, abhängig vom Zustand des Attributs
»error-policy«.
- 2 (CUPS_BACKEND_AUTH_REQUIRED)
-
Die Druckdatei wurde nicht erfolgreich übertragen, da gültige
Authentifizierungsinformationen benötigt werden. Der Auftragsplaner
wird darauf durch Halten des Auftrags reagieren und das
Schlüsselwort »cups-held-for-authentication« zu dem
Attribut »job-reasons« hinzufügen.
- 3 (CUPS_BACKEND_HOLD)
-
Die Druckdatei wurde nicht erfolgreich übertragen, da sie derzeit
nicht gedruckt werden kann. Der Auftragsplaner wird darauf durch Halten
des Auftrags reagieren.
- 4 (CUPS_BACKEND_STOP)
-
Die Druckdatei wurde nicht erfolgreich übertragen, da sie derzeit
nicht gedruckt werden kann. Der Auftragsplaner wird durch Anhalten der
Warteschlange darauf reagieren.
- 5 (CUPS_BACKEND_CANCEL)
-
Die Druckdatei wurde nicht erfolgreich übertragen, da eine oder
mehrere der Attribute nicht unterstützt werden oder der Auftrag am
Drucker abgebrochen wurde. Der Auftragsplaner wird durch Abbruch des
Auftrages darauf reagieren.
- 6 (CUPS_BACKEND_RETRY)
-
Die Druckdatei wurde aufgrund eines temporären Problems nicht
erfolgreich übertragen. Der Auftragsplaner wird den Auftrag zu
einem zukünftigen Zeitpunkt erneut versuchen - andere
Aufträge können vor diesem drucken.
- 7 (CUPS_BACKEND_RETRY_CURRENT)
-
Die Druckdatei wurde aufgrund eines temporären Problems nicht
erfolgreich übertragen. Der Auftragsplaner wird den Auftrag sofort
erneut versuchen, ohne andere Aufträge dazwischen zu erlauben.
Alle anderen Exit-Codes sind reserviert.
SIEHE AUCH¶
cups-snmp(8),
cupsd(8),
cupsd.conf(5),
filter(7),
lpinfo(8),
http://localhost:631/help
COPYRIGHT¶
Copyright 2007-2013 by Apple Inc.