The Solaris Print Client-Server Process
This section provides an overview of how Solaris printing works.
The Print Client Process
The following figure illustrates the path of a print request from the time the user initiates the request until it is printed.
Figure 2-1 Overview of the Print Client Process
A user submits a print request from a print client.
The print command checks a hierarchy of print configuration resources to determine where to send the print request.
The print command sends the print request directly to the appropriate print server. A print server can be any server that accepts BSD printing protocol, including SVR4 (LP) print servers and BSD lpd-based print servers.
The print server sends the print request to the appropriate printer.
The print request is printed.
Using Print Clients
This section of the overview focuses on the print client, a system that can send print requests to a print server, and print commands, which enable the print client to initiate print requests.
The following figure highlights the part of the print process in which the user submits a print request from a print client.
Figure 2-2 The User Submits a Print Request from a Print Client
What Is a Print Client?
A system becomes a print client when you install the Solaris print software and enable access to remote printers on the system.
The Solaris print software checks the following resources to locate printers and printer configuration information:
The command-line interface by using the lp -d command (atomic or POSIX format)
A user's LPDEST or PRINTER variables
The _default variable in the sources configured for the printers database in the /etc/nsswitch.conf file
The user's $HOME/.printers file
The local /etc/printers.conf file for the NIS name service
The LDAP or NIS name service database
The print client sends its requests to the print server's queue. The client does not have a local queue. The client writes the print request to a temporary spooling area only if the print server is not available or if an error occurs. This streamlined path to the server decreases the print client's use of resources, reduces the chances for printing problems, and improves performance.
Printer Configuration Resources
This section describes the resources that the print software uses to locate printer names and printer configuration information.
The print software can use a name service, which is a network (shared) resource for storing printer configuration information for all printers on the network. The name service (LDAP, NIS, NIS+, or NIS+ (xfn)) simplifies printer configuration maintenance: When you add a printer in the name service, all print clients on the network can access it.
The following figure highlights the part of the print process in which the print software checks a hierarchy of printer configuration resources to determine where to send the print request.
Figure 2-3 The Print Client Checks Resources to Locate Printers
How the Print Software Locates Printers
As shown in the following figure, the print software use more options to locate printers and printer configuration information.
Figure 2-4 How the Print Client Software Locates Printers
A user submits a print request from a print client by using the lp or lpr command. The user can specify a destination printer name or class in any of three styles:
Atomic style, which is the lp command and option followed by the printer name or class, as shown in this example.
% lp -d neptune filename
POSIX style, which is the print command and option followed by server:printer, as shown in the following example.
% lpr -P galaxy:neptune filename
Context-based style shown in this example.
% lpr -d thisdept/service/printer/printer-name filename
The print command locates a printer and printer configuration information as follows:
It checks to see if the user specified a destination printer name or printer class in one of the three valid styles.
If the user didn't specify a printer name or class in a valid style, the command checks the user's PRINTER or LPDEST environment variable for a default printer name.
If neither environment variable for the default printer is defined, the command checks the sources configured for the printers database in the /etc/nsswitch.conf file.
Using Print Servers
The print server is a system that has a local printer connected to it and makes the printer available to other systems on the network. The following figure highlights the part of the print process in which the print server sends the print request to the printer.
Figure 2-5 The Print Server Sends a Print Request to the Printer
The BSD Printing Protocol
The print commands use the BSD printing protocol. One of the big advantages of this protocol is that it can communicate with a variety of print servers:
lpd-based print servers
SunOS 5.9 and compatible SVR4 (LP) print servers
Any other print server or printer that accepts the BSD printing protocol
The BSD printing protocol is an industry standard. It is widely used and it provides compatibility between different types of systems from various manufacturers. Sun has chosen to support the BSD printing protocol to provide interoperability in the future.