Frage 102-117

Wozu dient das CUPS-Kommando disable?

  1. Anhalten von Warteschlangen, so dass sie keine Aufträge mehr akzeptieren (aber existierende Aufträge weiterhin an Drucker schicken)

  2. Anhalten von Warteschlangen, so dass sie keine Aufträge mehr an Drucker weiterreichen (aber weiterhin neue Aufträge akzeptieren und für später aufstauen)

  3. Anhalten von Warteschlangen, so dass sie weder neue Aufträge akzeptieren noch existierende Aufträge an Drucker weiterschicken

  4. Komplettes Löschen von Warteschlangen

LPI-Lernziel Drucker und Druckvorgänge verwalten (108.4)

8 Kommentare · Kommentar hinzufügen · RSS

Lösung?

MiniMe (Gast) · 3. Februar 2010, 12:03

Die Lösung würde mich sehr interessieren, die manpage schweigt sich diesbezüglich nämlich aus. Das gilt übrigens auch für ähnliche Befehle wie enable/accept/reject. Im offiziellen Manual (http://www.cups.org/doc-1.1/sum.html) werden diese Befehle übrigens gar nicht erwähnt...

Lösung?

Anselm Lingnau (eingetragen) · 3. Februar 2010, 12:16

Also in der aktuellen CUPS-Dokumentation (1.1 ist uralt, wir sind inzwischen bei 1.4!) sind die Kommandos durchaus erwähnt, aber man muss ggf. ein bisschen suchen.

Das Problem ist, dass die Bash ebenfalls die Kommandos »enable« und »disable« definiert. Um Verwirrung zu vermeiden, benutzen viele Distributionen heutzutage die Namen »cupsenable« und »cupsdisable« für die CUPS-Kommandos.

Lösung?

MiniMe (Gast) · 3. Februar 2010, 12:30

Das "cups" vor den Befehlsnamen hatte ich aus reiner Schreibfaulheit weggelassen ;) In der aktuellen Dokumentation werden auch nur die Man-Pages abgedruckt, die sich hart an Grenze zur Nutzlosigkeit bewegen...

Es wäre schön, wenn Sie entweder die Lösung oder einen Linkt beisteuern könnten. Bisher hab ich zu allen Fragen irgendwann die Antwort gefunden, aber CUPS ist echt ne harte Nuss! Da fühlt man sich schon etwas veräppelt, wenn man auf der CUPS-Homepage lesen darf:

"Documentation is a "must" for software as complex as a printing system."

Oh je...

Lösung?

Anselm Lingnau (eingetragen) · 3. Februar 2010, 13:07

Also ein bisschen Forschergeist sollte man ja doch aufweisen ... wie wäre es mit einem kleinen Experiment? (Tipp für alle Experimente rund um CUPS: Einen »Drucker« einrichten, der im wesentlichen auf einem Aufruf des Programms »cat« mit Ausgabeumlenkung in eine Datei beruht, das spart Papier :^))

Für die Akten: »accept« und »reject« kümmern sich darum, ob eine CUPS-Warteschlange weitere Jobs annimmt. »enable« und »disable« bestimmen, ob die Warteschlange Jobs, die schon in der Schlange stehen, an den (oder die) Drucker weiterreicht. (Das steht so auch in den Manpages.)

Lösung?

MiniMe (Gast) · 3. Februar 2010, 14:38

Der Tipp mit dem cat als Drucker ist gut. Jetzt muss ich nur noch herausfinden wie das geht... Die richtige Anwort ist dann also 2, danke für die Aufklärung!

Von mir gibts auch noch was für die Akten. Dies ist die Ausgabe von "man cupsenable" (identisch auf 3 untersch. System):

"cupsenable starts the named printers or classes. cupsdisable stops the named printers or classes."

??? Schätze ich muss meine Kristallkugel in die Werkstatt bringen, denn nach diesen "Erklärungen" bin ich kein bisschen schlauer als vorher...

Lösung?

Anselm Lingnau (eingetragen) · 3. Februar 2010, 15:20

Ich denke, die Sache steht und fällt mit einem grundlegenden Verständnis von CUPS. Die Idee hinter CUPS ist, dass Benutzer (und deren Programme, angefangen mit Sachen wie lp(1) und lpr(1)) nicht direkt mit Druckern interagieren, sondern nur mit Warteschlangen (die englische Dokumentation nennt sie queues oder auch destinations, also -- von Benutzern adressierbare -- »Druckziele«). Die Warteschlangen ihrerseits kümmern sich um allfällige Formatumwandlungen und ähnliches, bevor sie die Druckaufträge an tatsächliche Drucker weiterleiten, die auf verschiedenen Wegen direkt an den betreffenden Computer angeschlossen oder über das Netz erreichbar sein können. (»Klassen« sind mehrere Drucker, die aus Durchsatz- oder Redundanzgründen aus derselben Warteschlange gefüttert werden.)

Im Lichte dieser Erklärung wird verständlich, dass, wenn die Anleitung »cupsenable startet die benannten Drucker oder Klassen« sagt, der Schritt von der Warteschlange zum Drucker gemeint sein muss. Entsprechend heißt es in der Anleitung für »cupsaccept« auch »cupsaccept instructs the printing system to accept print jobs to the specified destinations.« Wobei »destination«, wie gesagt, CUPS-Jargon für das ist, was wir bisher »Warteschlange« genannt haben.

Man kann sich das ganze auch so vorstellen, dass »accept« und »reject« darüber entscheiden, ob das CUPS-System als ganzes einen Druckauftrag akzeptiert (»accept«) oder zurückweist (»reject«). Wenn der Auftrag erst mal von CUPS angenommen wurde, dann entscheidet über dessen Weiterbearbeitung, ob der passende Drucker eingeschaltet (»enable«) oder ausgeschaltet (»disable«) ist.

Es ist nicht falsch, sich die CUPS-Dokumentation (was es halt gibt, sie ist an ein paar Stellen ganz gut und an anderen ziemlich dünn) etwas genauer anzuschauen. Besonders empfehlen würde ich Overview of CUPS und CUPS Design Description.

"veräppelt" ...

bernd (Gast) · 28. Oktober 2010, 15:38

... der war gut!

BS-UNIX lpr vs. CUPS

Anonym (Gast) · 4. November 2010, 16:20

Viel Verwirrung scheint meiner Meinung daher zu kommen, dass man bei Recherchen im Netz unterschiedliche Informationen finden. Je nachdem was dort jeweils betrachtet wird.

  • BSD-Unix lpr
  • System V lpr
  • oder gar die Neuimplementierung von BSD mit SysV Zusätzen namens LPRng
  • und auf der anderen Seite CUPS

Hinzukommt, das nach meinen Recherchen es unter BSD-Unix einfacher und klarer war, da das hier besprochene dort auf drei Befehlskombinationen aufgeteilt war, und es unter CUPS nur noch zwei gibt.

BSD lpr:

  • enable/disable :: steuert Eingang der Warteschlange, was drin ist wird aber noch gedruckt
  • stop/start :: steuert Ausgang der Warteschlange, also ob gedruckt wird, Eingang davon unabhängig
  • up/down :: steuert sowohl den Eingang in die Warteschlange als auch das eigentlich drucken

CUPS:

  • cupsenable/cupsdisable :: startet/stopped namend printer bzw. Klassen. Mit der Option --hold werden Aufträge die schon da sind zu ende geführt.
  • cupsaccept/cupsreject :: bestimmt ob Jobs in Warteschlangen aufgenommen werden oder nicht

Wichtig

LPI-Logo

Die LPI Academy ist keine offizielle Webseite des LPI!

Sponsor

Linup-Front-Logo

Die LPI Academy wird für die Community unterstützt von der Linup Front GmbH

A Django Site

Diese Seite

Version: 0 (Anselm)
22.8.2009 12:04:20

Benutzer

Nicht angemeldet

Kommentare

RSS