Whenever I print a document, CUPS sends the document to a printer, then marks the printer stopped. The document does print, but I must delete the job (CUPS thinks it didn't print) and start the printer. I checked my settings in SuSEfirewall, and CUPS is allowed to talk through the firewall. I have this problem at home (LJ 4050) and work (LJ 2100). I am running 9.2, with all patches applied via apt. I never had this behavior with 9.1. I did a new install moving from 9.1 to 9.2, so there are no strange leftovers from 9.1 lying around. Suggestions are greatly appreciated.
Hello, On Feb 14 16:02 sargon wrote (shortened):
Whenever I print a document, CUPS sends the document to a printer, then marks the printer stopped. The document does print, but I must delete the job (CUPS thinks it didn't print) and start the printer.
It is the recipient of the backend which lets the backend think the job was not successfully finished - see http://portal.suse.com/sdb/en/2004/05/jsmeix_print-cups-in-a-nutshell.html "The Backends" I know this doesn't solve your problem but it explains the reason. As you didn't describe how your printer is connected, I cannot give you more specific information what to do in your particular case. In any case it schould help to make your own backend which simply ignores the state of the recipient and exits always successfully, but then you would of course lose jobs which really didn't print successfully. Here a quick and dirty example for a selfmade backend for the parallel port whith everything hardcoded in the backend and a possible (but unlikely) race condition: ------------------------------------------------------------------ #! /bin/bash # see the "CUPS Software Programmers Manual": # "Writing Filters" and "Writing Backends" # debug info in /var/log/cups/error_log set -x # output "Device Discovery" information on stdout if [ "$#" -eq "0" ] then echo 'direct lp0:/dev/lp0 "Unknown" "lp0 Printer"' exit 0 fi # have the input at fd0 (stdin) in any case if [ -n "$6" ] then exec <"$6" fi # infinite retries to access the device until cat /dev/null >/dev/lp0 do echo 'INFO: cannot access /dev/lp0 - retry in 30 seconds' 1>&2 sleep 30 done echo 'INFO: sending the data to /dev/lp0' 1>&2 # forward the data from stdin to the device if cat - >/dev/lp0 then echo 'INFO:' 1>&2 exit 0 else echo 'ERROR: failed to send the data to /dev/lp0' 1>&2 exit 1 fi ------------------------------------------------------------------ Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
participants (2)
-
Johannes Meixner
-
sargon