Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I run CUPS printing on a number of multiuser Linux application servers. The systems are RHEL or CentOS version 4, 5 or 6. Starting the EL5, the CUPS print server defaults to an error policy that basically disables the printer when there's an error or interruption (USB cable disconnect, network error, paper jam, etc.). This is the ErrorPolicy directive in printer's stanza in the /etc/cups/printers.conf file.

<Printer backupZ4>
Info backupZ4
DeviceURI socket://backupZ4:9100
State Idle
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>

I normally change this field to ErrorPolicy retry-job manually in the config file or when I create the printer via the command line:

lpadmin -p backupZ4 -v socket://backupZ4:9100 -o printer-error-policy=retry-job -E 

When other users or vendors manage the print system, they often forget this change, which results in printers being hard disabled following a paper jam or other blips that need to be corrected with a cupsenable.

I'd like to know how to make retry-job the default ErrorPolicy in CUPS versus stop-printer.

share|improve this question

1 Answer 1

up vote 4 down vote accepted
+50

There's a Feature Request that was Closed with Resolution to CUPS 1.3 for exactly this behavior. Link to the CUPS bug tracker: http://www.cups.org/str.php?L1871

I found no documentation to support this behavior in CUPS online documentation, but the documentation in the CUPS 1.5.2 source tarball I downloaded indicates that a global 'ErrorPolicy' declaration would work from the cupsd.conf config file.

Excerpt from the cupsd.conf documentation in Ubuntu CUPS 1.5.2:

CUPS 1.3/Mac OS X 10.5

ErrorPolicy

Examples

 * ErrorPolicy abort-job
 * ErrorPolicy retry-job
 * ErrorPolicy stop-printer

Description

The ErrorPolicy directive defines the default policy that is used when a backend is unable to send a print job to the printer.

The following values are supported:

 * abort-job - Abort the job and proceed with the next job in the queue
 * retry-job - Retry the job after waiting for N seconds; the cupsd.conf
   JobRetryInterval directive controls the value of N
 * retry-this-job - Retry the current job immediately and indefinitely.
 * stop-printer - Stop the printer and keep the job for future printing;
   this is the default value

(Note: Documentation Copyright of Apple Inc. and Reformatted to be readable.)

share|improve this answer
    
Yep, this finally made its way into RHEL/CentOS. I was able to make the change globally. Note that this doesn't override the settings in existing printers. A quick find/replace or sed takes care of that. –  ewwhite Mar 5 '12 at 13:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.