Printing Terminology – What Does Spool Mean?

cupslprprinting

Mark wrote a comment for me

I don't know offhand how to make cups not spool, that is, how to make the lpr command only exit after the printer driver has run.

What does "spool" for printing mean?

Google says it is a verb meaning "send (data that is intended for printing or processing on a peripheral device) to an intermediate store." What is the intermediate store that printing spool represents, for example, when printing by lpr command

Mark seems to relate the meaning of spool with blocking. But I can't figure that out by looking at the definition given by Google.

Thanks.

Best Answer

A print spool is effectively a buffer, managed per job, with a program (the spooler) responsible for receiving jobs from submitting programs and feeding them to one or more printers. The point of a spool is to handle communication between two systems with different speeds, and to control access to shared devices. The former means programs can submit print jobs as fast as they want, and those jobs are dealt with as fast (or slowly) as printers can handle. The latter (as pointed out by RonJohn) ensures that jobs are handled coherently: thus when printing, jobs aren’t mixed up.

Networked printers provide their own spools, and print servers (CUPS, lpd etc.) also implement spools. Most print systems also handle access control, quotas, banners, print options etc. Spools are used in other contexts; for example, tape-based backup servers now spool backup data from networked hosts on a fast disk-based storage system, so that they can then feed modern tape drives at the tremendous speeds they need to avoid tape shoe-shine.

In the context of the comment, the relevance of a spool is that it decorrelates the print job submission from its fulfillment. Not spooling would mean that the submission would only complete with the print job, and thus your lpr command would only complete once the job completed. Removing the spool on your computer might not have the desired result though since the printer itself could spool too!

Related Question