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'`
[ ^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:
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