The following terms relate to the spooler overview.
The AIX spooler is a collection of programs, configuration files, and data files that provide the following functions or services:
A queue is an ordered list of requests for a specific device. A device is something that can handle requests one at a time, such as a printer. Each queue must be serviced by at least one device; often it can be serviced by multiple devices.
A real (physical) printer is the printer hardware attached to the system via a serial or parallel port, or through a network connection such as a network terminal server. When the real printer is attached via a serial or parallel port local to the system, the printer device driver in the kernel communicates with the printer hardware and provides an interface between the printer hardware and a virtual printer.
A virtual printer is a set of attributes and their associated values that define a high-level data stream (such as ASCII or Postscript) and the methods for processing that data stream. This does not include information about how the real printer is attached to the host computer or about the protocol used for transferring bytes of data to and from the real printer. The piobe backend uses information stored in the virtual printer definition to control print job processing. The physical storage medium of the sets of attributes and their associated values is called a printer colon file.
A local printer is a real printer attached to a local host, for which there is a local queue. All jobs submitted to this queue are processed and printed on the host on which the queue exists. A remote printer is a real printer attached to a remote host. The queue for a remote printer specifies a backend whose function is to send the spooled job from the local host across the network to the remote host. All jobs submitted to this queue, on the local host, are sent across the network to the remote host where they are processed and printed.
A spooler backend is a collection of programs (a pipeline) started by the spooler's qdaemon command to manage a spooler job that is queued for processing. When the backend is for a print queue, the spooler backend typically performs the following functions:
You typically do not run printer backend programs directly, although backends such as compilers can clearly be run directly from the command line. The qdaemon runs the backend, sending it the names of files and any job control flags that you specify. The backend communicates with the qdaemon through a status file in the /var/spool/lpd/stat directory. You can use a queue status query command such as qchk or lpstat to display status information, including, in the case of a print job, the printer status, the number of pages printed, and the percentage of the job that is finished.
In AIX, piobe is the standard spooler backend for processing local print jobs.
A formatter filter is part of the pipeline created and executed by the default backend for local printer queues, piobe. A formatter filter provides the capability of either formatting an input file or passing it through unmodified, based on an input parameter. Even if the formatter passes the input file unmodified, it still sends printer commands to initialize the printer before the input file is printed and restores the printer to its original state after printing is complete.
It is the formatter filter that has the capability of using a virtual printer's colon file to perform extensive manipulation of a spooler print job.
A spooler job is any job that a user submits to the spooler. All job submission commands must end with the names of one or more files that require processing. You cannot, for instance, pass a keyword to a backend and have the keyword control the function that backend will perform; the submitted job must exist in the file system.
The spooler will accept many types of jobs. It is the responsibility of the system administrator to ensure that the backend for a given queue is capable of processing any job submitted to that queue.
Printer job types include:
A printer/plotter device is a special file in the /dev/directory for a real printer. This file can be used by redirection (for example, cat FileName > /dev/lp0) or by user-written, compiled programs. Settings for this device driver can be displayed and changed using the splp command. Before any of the spooler commands can access a printer device, a print queue must be created for the device.
The qdaemon is a process that runs in the background under the auspices of the srcmstr process. When you turn your system on, the startsrc command starts the qdaemon. While the qdaemon can be started by the startsrc command or stopped by the stopsrc command, the qdaemon supports only signal communications and thus cannot be queried by the lssrc command.
The qdaemon tracks both job requests and the resources necessary to complete the jobs, where the resources may be a real printer, some other real device, or even a file. The qdaemon maintains queues of outstanding requests and sends them to the proper device at the proper time. The qdaemon also records printer usage data for system accounting purposes. It is the qdaemon that sets the backend for a spooler queue into execution.
If the qdaemon is aborted, it will be restarted by srcmstr.
Note: Please do not attempt to stop the srcmstr daemon; it controls other daemons running on your system.