Clearing Stopped Mac Print Queues (automatically, using scripts)

KB Home   |   Clearing Stopped Mac Print Queues (automatically, using scripts)

After a printer error like a paper jam or a communication problem a Mac print queue may need to be manually started before jobs start printing again. The same can be true if a “bad” job is encountered - the other jobs won’t print until it is cleared.

Gustavus Adolphus College contributed the following scripts to start stopped queues and clear stopped jobs. These scripts have been updated for Mac OS 10.8 (Mountain Lion). Other versions may require different commands or arguments.

Firstly make sure print queues are resumed. This can be done with the following command. For instance, it can run as a launchd daemon every two minutes:
/usr/sbin/cupsenable `lpstat -p | sed -nEe '/disabled/s/^[^ ^I]+[ ^I]([^ ^I]+)[ ^I]+.*$/\1/p'`
Note that [ ^I] is the character class for a space and a tab character.
This will resume the queue and leave the bad job “stopped” - basically the queue resumes and just skips over this job.
To clear the “stopped” jobs I run the following launchd daemon at night when the printers aren’t being used:
/usr/bin/cancel -a
launchd is used to set the time interval. A user can easily do this with a program called Lingon and set it to any amount of time or they can write a launchd script.

keywords: cupsd, cups, pause, paused


Categories: Scripting

Comments

Share your findings and experience with other PaperCut users. Feel free to add comments and suggestions about this Knowledge Base article. Please don't use this for support requests.

Article last modified on February 19, 2013, at 12:24 AM
Printable View   |   Article History   |   Edit Article