Druck auf Befehl
Drucker von der Kommandozeile steuern
lprm
Wurde eine Datei zu früh an den Drucker geschickt, kann ein Job jederzeit wieder aus der Druckerwarteschlange entfernt werden - das gilt sogar dann, wenn er sich bereits im Ausdruck befindet. Alles, was dazu benötigt wird, ist die Druckjob-Nummer; sollte der Druckauftrag nicht in der Standard-Warteschlange liegen, ist auch noch der Warteschlangen-Name anzugeben:
[esser@dual lpr]$ lprm -Plp2 42
Dabei darf jeder Benutzer übrigens nur die Jobs löschen, die er auch selbst in Auftrag gegeben hat. Um alle eigenen Jobs zu löschen, kann man auch kurz "lprm -" eingeben. Besondere Privilegien hat wie üblich root: Der Administrator kann beliebige Jobs aus der Queue nehmen, und hier führt ein "lprm -" zum Löschen wirklich sämtlicher Einträge.
Je nach Drucksystem führt der lprm-Befehl nicht immer zum gewünschten Resultat. Im Test mit CUPS liefen Druckjobs teilweise unbeirrbar weiter, obwohl auch das CUPS-Anwenderhandbuch den Abbruch über lprm (oder wahlweise cancel) empfiehlt.
lp control
Bei der Drucker-Kontrolle gehen die verschiedenen Drucksysteme getrennte Wege. Zwar bietet auch CUPS eine Version des klassischen lpc-Kommandos (line printer control), diese erlaubt aber nur eine Statusabfrage.
Worum geht es überhaupt: Die Kontroll-Tools gestatten im Wesentlichen vier Funktionen: Das (De-) Aktivieren des Druckbetriebs (also Anhalten und Wieder-Anwerfen des Druckers) und die Sperrung und Freigabe der Druckerwarteschlange. Der Unterschied ist schnell erklärt: Eine gesperrte Warteschlange verweigert die Annahme neuer Druckjobs, während eine inaktive Warteschlange zwar neue annimmt aber nicht weiter druckt.
Das klassische Drucksystem, LPR (heute oft LPRold genannt), verwendet den lpc-Befehl (/usr/sbin/lpc) für diese Aufgaben; die vier beschrieben Funktionen erreichen Sie dort über Befehle der Form
/usr/sbin/lpc stop name /usr/sbin/lpc start name /usr/sbin/lpc disable name /usr/sbin/lpc enable name
Bei CUPS kennt lpc nur das eher langweilige stat-Kommando; es ist wohl nur vorhanden, um Programme lauffähig zu halten, die die Existenz eines lpc-Befehls voraussetzen, ohne ihn wirklich zu verwenden. Die gleichen vier Funktionen erreichen Sie bei CUPS über die Befehle
disable name /usr/bin/enable name reject name accept name
Vorsicht: Die Programme haben nicht die erwartete Funktion! disable und enable entsprechen nicht den gleichnamigen Optionen des lpc-Kommandos. Zudem muss das Kommando enable mit vollem Pfad aufgerufen werden, da die Bash einen eingebauten Befehl gleichen Namens besitzt, der bei Weglassen des Pfads vorrangig wäre. Der Bash-enable-Befehl verwaltet die übrigen in die Bash integrierten Befehle (wie z. B. exit oder set); siehe man bash.
Während ein "echter" lpc auf LPR-Systemen nur vom Administrator root ausgeführt werden kann, dürfen die entsprechenden CUPS-Kommandos von jedem aufgerufen werden; sie verlangen beim Start durch normale Anwender jedoch die Eingabe des root-Passworts, das spart den su-Aufruf.



