Provided by: cups-daemon_2.3.1-9ubuntu1.9_amd64 

NAME
backend - CUPS Backend-Übertragungsschnittstellen
SYNOPSIS
backend
backend Auftrag Benutzer Titel Anzahl-Kopien Optionen [ Dateiname ]
#include <cups/cups.h>
const char *cupsBackendDeviceURI(char **argv);
void cupsBackendReport(const char *device_scheme,
const char *device_uri,
const char *device_make_and_model,
const char *device_info,
const char *device_id,
const char *device_location);
ssize_t cupsBackChannelWrite(const char *buffer,
size_t bytes, double timeout);
int cupsSideChannelRead(cups_sc_command_t *command,
cups_sc_status_t *status, char *data,
int *datalen, double timeout);
int cupsSideChannelWrite(cups_sc_command_t command,
cups_sc_status_t status, const char *data,
int datalen, double timeout);
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. Jede
Authentifizierungsinformation wird aus argv[0] entfernt, daher wird Backend-Entwicklern empfohlen, die
Umgebungsvariable DEVICE_URI zu verwenden, wenn immer Authentifizierungsinformationen benötigt werden.
Die Funktion cupsBackendDeviceURI() kann zum Ermitteln der korrekten Geräte-URI verwandt werden.
Rückgeleitete Daten vom Gerät sollten an die Filter für die Aufträge mittels der Funktion
cupsBackChannelWrite weitergeleitet werden.
Backends sind dafür verantwortlich, mittels der Funktion cupsSideChannelRead() Seitenkanalanfragen zu
lesen und mit der Funktion cupsSideChannelWrite() zu antworten. Die Konstante CUPS_SC_FD definiert den
Dateideskriptor, der für eingehende Anfragen überwacht werden sollte.
GERÄTE-ERMITTLUNG
Beim Aufruf ohne Argumente sollte das Backend die Geräte und unterstützten oder beworbenen Schemata auf
der Standardausgabe 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"
Die Funktion cupsBackendReport() kann dazu verwandt werden, um diese Zeilen zu erzeugen und in den
verschiedenen Zeichenketten alle notwendigen Zeichen zu maskieren.
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.
Parallelport-, 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-Schema bereit. Backends sollten diese Form nur
verwenden, wenn das Backend irgendeine dem Schema folgende URI unterstützt. Das Feld device-uri legt die
komplette URI, die bei der Kommunikation mit dem Gerät verwandt werden soll, fest.
Das Feld device-make-and-model legt die Marke und das Modell des Gerätes, z.B. »Beispiel Foojet 2000«,
fest. Falls die Marke und das Modell nicht bekannt ist, müssen Sie »Unknown« melden.
Das Feld device-info legt zusätzliche Informationen über das Gerät fest. 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 legt die IEEE-1284-Geräte-ID-Zeichenkette für das Gerät, die zur Auswahl des
passenden Treibers verwandt wird, fest.
Das optionale Feld device-location legt den physischen Standort des Geräts fest. Es wird oft dazu
verwandt, die Drucker-Standort-Attribute vorab zu belegen, wenn ein Drucker hinzugefügt wird.
RECHTE
Backends, denen die Lese- und 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-STATUS
Die nachfolgenden Exit-Codes sind für Backends definiert:
CUPS_BACKEND_OK
Die Druckdatei wurde erfolgreich an das Gerät oder den fernen Server übertragen.
CUPS_BACKEND_FAILED
Die Druckdatei wurde nicht erfolgreich zum Gerät oder fernen Server übertragen. Der Auftragsplaner
(Scheduler) wird daraufhin den Auftrag abbrechen, den Auftrag erneut versuchen oder die
Warteschlange anhalten, abhängig vom Zustand des Attributs printer-error-policy.
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 Auftragsbeschreibungsattribut »job-reasons«
hinzufügen.
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.
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.
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.
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 gedruckt werden.
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.
UMGEBUNG
Zusätzlich zu den in cups(1) und filter(7) aufgeführten Umgebungsvariablen können CUPS-Backends die
folgenden Umgebungsvariablen erwarten:
DEVICE_URI
Die mit dem Drucker verbundene Geräte-URI.
DATEIEN
/etc/cups/cups-files.conf
HINWEISE
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 macOS) 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 Druckaufträge zu übersenden oder das
Programm lpinfo(8), um verfügbare Drucker über ein Backend abzufragen. Die einzige Ausnahme ist das
SNMP-Backend - lesen Sie cups-snmp(8) für weitere Informationen.
HINWEISE
CUPS-Druckertreiber und -Backends sind veraltet und werden in einer zukünftigen Funktionsveröffentlichung
von CUPS nicht mehr unterstützt. Drucker, die IPP nicht unterstützen, können mittels Anwendungen wie
ippeveprinter(1) unterstützt werden.
SIEHE AUCH
cups(1), cups-files.conf(5), cups-snmp(8), cupsd(8), filter(7), lp(1), lpinfo(8), lpr(1),
CUPS-Online-Hilfe (http://localhost:631/help)
COPYRIGHT
Copyright © 2007-2019 by Apple Inc.
26. April 2019 CUPS Backend(7)