Previous Table of Contents Next

Scheduling Network Print Requests

Each print client and print server must have at least one (and maybe several) lpNet daemon. The lpNet daemon schedules network print requests. The lpNet daemon is also started when a system is booted. If you stop and restart the scheduler (using the lpshut and lpsched commands), the lpNet daemon is also stopped and restarted.

Although the Service Access Facility--sacadm(1M ), pmadm(1M )-- is not part of the LP print system, the lpNet daemon needs a configured port monitor and registered listen services to handle incoming network requests on each print server running SunOS 5.0 system software. See Chapter 3, "Administering Devices," for more information about the Service Access Facility.

NOTE:  The Solaris 2.6 release does not use the lpNet daemon to schedule network requests. Instead, network scheduling is handled by the inetd Internet services daemon. The inetd daemon listens for a request and starts in.lpd and then in.lpd looks at the request and loads in.lpd passes the request through to lpsched for local printing.

Filtering Print Files

Print filters are programs that convert the content of a file from one format to another so that it can be printed. In network printing, print filters process the file on the print client before it gets transmitted to the server. The LP print service uses filters to:

  Convert a file from one data format to another so that it can be printed properly on a specific type of printer
  Handle the special modes of printing that users may request using the -y option to the lp command -- for example, two-sided printing, landscape printing, draft- or letter- quality printing
  Detect printer faults and notify the LP print service of them so that the print service can deliver alerts

Not every print filter can perform all of these tasks. However, because each task is printer specific, it can be implemented separately.

A print filter can be as simple or as complex as needed. SunOS 5. x system software provides print filters in the /usr/lib/lp/postscript directory to cover most PostScript printing situations where the destination printer requires the data to be in PostScript format. You have to create and add filters to the system for non-PostScript printers.

Starting the Printer Interface Program

The LP print service uses a standard printer interface program to interact with other parts of the operating system to:

  Initialize the printer port, if necessary. The standard printer interface program uses the stty command to initialize the printer port.
  Initialize the printer. The standard printer interface program uses the terminfo database and the TERM shell variable to find the appropriate control sequences.
  Print a banner page, if necessary.
  Print the correct number of copies specified by the print request.

The LP print service uses the standard interface program (found in the /usr/lib/lp/model directory) unless you specify a different one. You can create custom interface programs, but you must be careful that the custom program does not terminate the connection to the printer or interfere with proper printer initialization.

Tracking the Status of Print Jobs

The lpsched daemons on both the print server and the print client each keep a log of every print request that is processed and note any errors that occurred during the printing process. This log is kept in the /var/lp/logs/lpsched file. Every night, the lp cron job renames /var/lp/logs/ lpsched to a new file lpsched.n and starts a new log file. If errors occur or jobs disappear from the print queue, you can use the log files to determine what lpsched has done with a print job.

Tracking Forms

The LP print service helps you track which forms are mounted on each printer and notifies you when it cannot find the description of how to print on a form. You are responsible for creating form descriptions and mounting and unmounting the paper form in each printer, either as part of setting up a printer or in response to alerts from the LP print service.

Users can specify the form on which they want a job to print. You (root) can mount a specific form and then tell the LP print service that the form is available and on which printer it is mounted. Alternatively, users can submit print requests specifying a particular form and whether the form is mounted. When the LP print service receives the request, it sends an alert message to the system administrator (root) requesting that the form be mounted.

Tracking Printwheels

The procedure for tracking printwheels is similar to the procedure for tracking forms. Some printers (usually letter-quality printers), such as daisy wheels or print balls, have removable print heads that provide a particular font or character set. A user can request a named character set. If that character set is not available, the LP print service notifies the system administrator (root) of the request. The job is stored in the print queue until the printwheel is changed.

Receiving Printing Problem Alerts

The LP print service performs sophisticated error checking. If a printing problem occurs, alerts are sent to the originator of a print request or to the system administrator, depending on the nature of the problem and what is required to fix it. Users are notified when a print request cannot be completed. Users can request notification by e-mail when a job is successfully completed. Administrators are alerted to problems with printers, and to requests for filters, forms, or character sets.

For problems that require an administrator's attention, the LP print service default is to write an alert message to the system administrator's console window (that is, to the terminal on which root is logged in).

As the system administrator, you can change the policy to receive alert messages via e-mail or a program of your choice. Or you can choose to receive no alerts when printing problems occur.

Previous Table of Contents Next