Chapter 2. Printers

Under IRIX, printer services are implemented by lp, the line printer utility. This utility supports a spooling service that manages print requests and a user interface to control the print service.

The easiest way for you to install and maintain a printer using IRIX is to use the graphic System Manager, which is described in the Personal System Administration Guide . The System Manager's Printer Manager can perform many of the tasks managed with the command-line interface in this chapter. If you have a nongraphics workstation or server, or prefer the comand-line interface, use this chapter for instructions on how to administer your printing system.


Note: In this chapter, the terms workstation and server are used interchangeably, because the interface described here between both kinds of systems is identical.

This chapter covers the following topics:

For troubleshooting and error messages, refer to

Understanding the lp Spooler

The line printer (lp) spooling utility is software that manages the print spooling system. Spooling is a technique that temporarily stores data until it is ready to be processed (in this case, by your printer). For lp spooling, a file (or group of files) to be printed is stored in a queue until a printer becomes available, as shown in Figure 2-1. When the printer is available, the next file in the queue is printed.

Figure 2-1. Print Spooling

Print Spooling

lp spooling allows background printing; users can use their workstations while their print jobs await the printer. With lp spooling, printers can be shared among many users. The flow of printing is regulated by the lp spooling utility.

The user interface to lp is a series of user and administrator commands that permit control of individual print jobs and management of printer resources.

Terms

Throughout this chapter, these terms represent important concepts in the lp spooling system:

printer 

A logical name that points to an interface file, which represents a physical device, that is, the actual printer.

class 

The name given to an ordered list of one or more printers. A printer may be assigned to more than one class but need not be a member of any class. Figure 2-2 shows printers divided into two classes: one for black-and-white printers and one for color printers.

destination 

The place an lp request is sent to await printing. The destination may be a specific printer or a class of printers. An output request sent to a specific printer is printed only by that printer; a request sent to a class of printers is printed by the first available printer in its class. Default destinations are initially set up but can later be modified, as needed.

Figure 2-2. Printer Classes

Printer Classes

Command Interface to lp

The command interface to lp consists of a set of commands for users sending their jobs to the printer and a set of administrator commands for managing printer resources.

The lp spooling utility allows

  • Grouping printers together into logical classes to maximize throughput. (These printers need not be the same type.)

  • Configuring your system to spool to a class of printers.

  • Queueing print requests (jobs) so they can be processed by the next available printer.

  • Canceling a print request so that an unnecessary job is not printed.

  • Starting and stopping lp from processing print requests.

  • Changing printer configurations.

  • Reporting the status of the lp scheduler.

  • Restarting any printing that was not completed if the system was powered down.

  • Moving print requests and queues from one printer or class of printers to another.

User Command Summary

The commands described in this section allow users on workstations and across the network to access the printing facilities. Users should use the lp and cancel commands most frequently, the lpstat command occasionally, and the enable and disable commands infrequently, if ever. No special privileges are necessary to use these commands.

This section describes the five basic lp commands.

lp 

Routes jobs to a destination and places them in a queue. The destination may be either a single printer or a class of printers.

cancel 

Cancels spooled print requests.

lpstat  

Reports the status of the lp spooling system.

lp: Send a Print Job to a Printer

The  lp command routes a print job request to a destination where it is placed in a queue to await printing. The destination may be a single printer or a class of printers. If you do not specify a destination, the request is routed to the default destination. For information on how to set the default printer destination, see “Changing the Default Printer Destination ”.

The form of the lp command is

lp [options] filename... 

Every time an lp request is made, a request ID is assigned to the job and a record of the request is sent to you. The request ID has this form:

destination-seqnum 

destination is the printer or class of printers to which the job has been routed. seqnum is an arbitrary sequence number assigned to the job by the lp system.

lp has three options that are particularly useful: -n, -d, and -c.

  • Use -n to print more than one copy of a document:

    lp -nnumber 
    

    number is the number of copies to print. Note that there is no space between -n and number.

  • Use -d to specify a printer or class of printers other than the default printer (assuming your system has more than one printer defined):

    lp -ddestination filename... 
    

  • Use -c (for copy) to send a copy of the file to the printer. This ensures that edits you make to your files after you have issued a print request do not show up in the printed output:

    lp -c filename... 
    

You can combine these command options in any order. For a complete list of lp options, see the lp(1) reference page. Example 2-1 and Example 2-2 show some uses of the lp command.

Example 2-1. Simple lp Print Requests

lp myfile 
lp < myfile 
cat myfile | lp 

To request a printout, you can use the lp command several different ways. The entries in Example 2-1 perform identical functions, sending a simple print request to the default printer.

Example 2-2. Complex lp Print Request

lp -n3 -dfoo -c myfile 

The entry in Example 2-2 prints three copies on printer foo and creates a copy of the file for the printer to process, ensuring that if changes are made to the file after the print request, the original file is printed.  

cancel: Remove a Print Request

The cancel command removes a job from the queue. You can cancel a job either before or after it starts printing.

Any user can cancel any other user's job. If you cancel another user's print request, mail is sent to that user. Once you cancel a job, you can request that it be printed again only with the lp command:

cancel printer-name 
cancel request-ID ...

Using the printer-name cancels the job currently being printed. Using the request-ID cancels the specified job(s) whether or not it is currently being printed, as shown in Example 2-3.

Example 2-3. Using the cancel Command

cancel myprinter 
request "myprinter-16" cancelled 
cancel myprinter-17 
request "myprinter-17" cancelled

Issuing a cancel command does not work when the job is being printed on a remote printer. To cancel a print job on a remote printer, log in to the remote system and issue the cancel command.

lpstat: Report lp Status

The lpstat command reports the status of various aspects of the lp system. To check lp status, type

lpstat [options] 

Use the -t option to display a complete report on the status of the lp system.

For a complete list of options, see the lpstat(1) reference page.

Example 2-4 shows a sample lpstat -t command and its result:

Example 2-4. Using the lpstat Command

lpstat -t 

scheduler is running 
system default destination: myprinter 
members of class foo: 
myprinter 
device for myprinter: /dev/plp 
myprinter accepting requests since Jul 31 21:40 
foo accepting requests since Jul 30 12:23 
printer myprinter now printing foo-18 
enabled since Aug 5 15:34 
foo-18 mylogin 3156 Aug 7 17:11 on myprinter 


Administrator Command Summary

This section summarizes the administrative commands that control the lp system. To execute administrative commands, you must be logged in as either root (that is, the superuser) or lp. Inexperienced users should not use the lp administrative commands.

lpsched 

Starts the lp scheduler

lpshut 

Stops the lp scheduler

disable 

Prevents a printer from printing jobs that are in the queue

enable 

Allows a printer to print jobs in the queue

reject 

Prevents jobs from queueing at a particular destination

accept 

Permits job requests to queue at a particular destination

lpmove 

Moves job requests from one destination to another

lpadmin 

Configures the lp system

lpsched: Start the lp Scheduler

The  lpsched command starts the lp scheduler, the background daemon responsible for scheduling lp requests. lp prints jobs only when the scheduler is running on that system. lpsched is executed automatically each time the computer is booted.

Every time lpsched is executed, it creates a file called SCHEDLOCK in /var/spool/lp. When the scheduler is stopped under normal conditions, SCHEDLOCK is automatically removed. As long as this file exists, the system does not allow another lp scheduler process to run. If the scheduler stops abnormally (for example, if the system shuts down abnormally), you must remove SCHEDLOCK before you use the lpsched command.

To start the lp scheduler, type

/usr/lib/lpsched 

There is no response from the system to acknowledge the lpsched command; to verify that the scheduler is running, use lpstat.  

You can disable lpsched from starting at boot time using chkconfig(1M) . The command

chkconfig lp off

prevents lpsched from running at system startup. To enable lpsched at system startup, enter

chkconfig lp on

lpshut: Stop the lp Scheduler

The lpshut command stops the lp scheduler and ends all printing activity. All requests that are being printed when you issue the lpshut command are reprinted in their entirety when the scheduler is restarted.

To stop the lp scheduler, type

/usr/lib/lpshut 

disable: Stop Printer From Processing Requests

The disable command prevents the printer from printing jobs in the queue. Possible reasons for disabling the printer include malfunctioning hardware, paper jams, running out of paper, or end-of-day shutdowns. If a printer is busy at the time it is disabled, the request it was printing is reprinted in its entirety when you reenable the printer.

You can send job requests to a printer that has been disabled. The jobs are put in the queue but are not printed until the printer is enabled.

To disable a printer, type

disable [-c] [-r"reason"] printer(s) 

  • Use the -c option to cancel the request currently being printed and disable the printer. This is useful if the current request causes the printer to behave abnormally.

  • Use the -r option to tell other users why you disabled a printer. reason is a character string and must be enclosed in double quotation marks (" "). This string is displayed to anyone trying to use the disabled printer or to anyone issuing the lpstat command.

enable: Allow Printer to Process Requests

The enable command permits a printer that has been disabled to begin printing jobs from the queue. Example 2-5 shows how to use the enable command. To enable a printer, type

enable printer... 

Example 2-5. Using the enable Command

disable -r"paper jam" myprinter 
printer "myprinter" now disabled 
enable myprinter 
printer "myprinter" now enabled 


reject: Prevent Print Requests

The  reject command stops lp from routing requests to a destination queue. For example, if a printer has been removed for repairs, or has received too many requests, you may wish to prevent new jobs from being queued at that destination.

If the printer is enabled, all requests that are in the queue when you issue the reject command are printed.

The reject command takes the form

/usr/lib/reject [-r"reason"] destination 

Use the -r option to tell other users why print requests are being rejected. reason is a character string and is enclosed in double quotation marks (" "). This string is reported to anyone trying to use lp to send requests to the specified destination.

accept: Allow Print Requests

The accept command allows job requests to be placed in a queue at the named printer(s) or class(es) of printer(s). As shown in Example 2-6, accept allows a printer to receive job requests and reject disables printing:

Example 2-6. Using the accept and reject Commands

/usr/lib/accept myprinter 
destination "myprinter" now accepting requests 
/usr/lib/reject -r"printer broken" myprinter 
destination "myprinter" is no longer accepting requests 


lpmove: Move a Request to Another Printer

The lpmove command moves print requests from one destination to another. For example, if you have a printer removed for repairs, you may want to move all jobs pending on the queue to a destination with a working printer. You may also use lpmove to move specific requests from one destination to another but only after you have halted the scheduler with the lpshut command. lpmove automatically rejects job requests rerouted to a destination without a printer. The lpmove command takes two forms:

/usr/lib/lpmove dest1 dest2 
/usr/lib/lpmove request(s) destination 

dest1, dest2, and destination are printers or classes of printers. request is a specific request ID.

In the first form of the command, all requests are moved from dest1 to dest2. After the move, the printer or printers at dest1 does not accept requests until you issue an accept command. All rerouted requests are renamed dest2-nnn, where nnn is a new sequence number in the queue for destination dest2. In the second form, which you can issue only after you stop the scheduler, the rerouted requests are renamed destination-nnn. When you restart the scheduler, the original destinations still accept new requests. Example 2-7 demonstrates the use of the lpmove and lpshut commands.

Example 2-7. Using the lpmove and lpshut Commands

/usr/lib/lpmove myprinter yourprinter 
lpshut 
/usr/lib/lpmove foo-19 foo-20 yourprinter 
total of 2 requests moved to yourprinter 


lpadmin: Configure Printers

The lpadmin command has two primary uses:

  • Adding new printers to the system

  • Changing printer classes and destinations

Unlike most IRIX commands, lpadmin requires an option. The lpadmin command takes three forms:

lpadmin -ddestination 
lpadmin -xdestination 
lpadmin -pprinter [options] 

  • Use the -d option to set the system default destination. The destination must already be installed when you issue the command.

  • Use the -x option to remove the specified destination from the lp system.

    You cannot remove a destination (printer or class) if it has pending requests; you must first either remove all requests with the cancel command or move them to other destinations with lpmove.

    Removing the last remaining member of a class deletes that class from lp. Removal of a class, however, does not imply the removal of printers assigned to that class.


    Note: The rmprinter command can also be used to remove a printer. See “Removing a Printer”.


  • Use the -p option to reassign printers to different classes. This option has two options of its own. With these options, the lpadmin command takes the form

    lpadmin -pprinter [-cclass] [-rclass] 
    

    • Use the -c option to assign a printer to the specified class.

    • Use the -r option to remove a printer from the specified class.

    The -p option does not work while the scheduler is running.

In Example 2-8, the first entry shuts down the lp scheduler. The second entry removes the printer myprinter from the lp spooling system. The printer myprinter is then removed from the foo class and assigned to the boo class with the third entry.

Example 2-8. Using the lpadmin Command

/usr/lib/lpshut
/usr/lib/lpadmin -xmyprinter 
/usr/lib/lpadmin -pmyprinter -rfoo -cboo 

For a complete list of options, see the lpadmin(1M) reference page.

Managing the lp System

This se ction contains procedures for adding a printer, removing a printer, changing your default printer, clearing printer log files, and printing over a network.  

Adding a Printer

To send print requests to your printer, you must first add your printer by registering it with the lp spooler. The procedures for adding a printer with lp vary. The procedures are divided into the following groups, depending on the type of printer and how it is used:

  • Parallel and serial printers on the local system; see “Adding Parallel and Serial Printers”.

  • SCSI printers; see “Adding a SCSI Printer”.

  • Printers connected to remote print server systems; see “Adding a Network Print Server”.


    Note: The utilities described in this section, mkcentpr, mkserialpr, mkscsipr, and mknetpr, should be used whenever possible. For a list of supported printers, see the directory /var/spool/lp/model. Additionally, these utilities list the printers they support when they are executed.


Adding Parallel and Serial Printers

Silicon Graphics systems are equipped with at least one parallel and one serial port. Both ports are on the back of the workstation and are clearly labeled.

The special file /dev/plp is the interface to the parallel printer port. Some larger servers have multiple parallel ports.

If you have more than one parallel port on your system, the device files that refer to the ports are named according to the board slot in which the CPU board is installed. For example, if you have an IO4 board in slot 2 and another in slot 4, the device files for the parallel ports are /dev/plp2 and /dev/plp4. One of these devices (the parallel port attached to the board designated as the primary board) is linked to the default /dev/plp.

Normally, /dev/plp is directly accessed only by a print spooling mechanism such as the lp subsystem. The special file /dev/plp may only be opened for writing one process at a time. However, several processes may open the device in read-only mode to find out the printer status. A printer reset is issued whenever the device file is opened for writing. For a complete description of the parallel printer interface, see the plp(7) reference page.

Parallel and serial printers are installed with a similar procedure but to different ports. Your printer hardware documentation should detail the cabling requirements for the printer's interface. Connect the printer interface cable to your printer and to the appropriate port on the back of your workstation.

To register printers connected directly to your computer via a parallel or serial port, follow these steps:

  1. Become the superuser with the su command.

  2. Stop the print spooler. Type

    /usr/lib/lpshut 
    

  3. Choose one of the following commands, depending on the type of port your printer is attached to:

    • Assuming you have a printer attached to the parallel port, use the mkcentpr utility to install the printer in the lp system. Type

      mkcentpr 
      

      The mkcentpr utility is an interactive script that prompts you for all necessary information about your printer and then automatically registers it. You should be prepared to specify the device file for the parallel port (/dev/plp unless you have multiple CPU boards installed) and other specific information. Consult the mkcentpr(1M) reference page for complete information about mkcentpr syntax.

    • Assuming you have a printer attached to the serial port, use the mkserialpr utility to install the printer in the lp system. Type

      mkserialpr 
      

      The mkserialpr command is similar to mkcentpr except that it is used for the serial port. Consult the mkserialpr(1M) reference page for complete information about mkserialpr syntax.

  4. To set up the printer as the default printer, type the following command and substitute the printer name by which the printer is known to its users for the printer-name:

    /usr/lib/lpadmin -dprinter-name 
    

Your printer is now registered with the lp system and is ready for printing.

Adding a SCSI Printer

SCSI printers are supported by Impressario. If you have Impressario installed on a nongraphics system, use the mkscsipr command supplied with Impressario to register the printer. Consult the mkscsipr(1M) reference page for complete information about mkscsipr syntax.

Adding a Network Print Server

Network print servers allow several users to use the same printer, thus avoiding the expense of having a printer attached to each workstation. In a network, printers attached to remote systems are called print servers, remote systems with print servers attached are called print server systems, and the workstations accessing the print servers are called print clients, as shown in Figure 2-3.

Figure 2-3. Print Clients, Print Server Systems, and Print Servers

Print Clients, Print Server Systems, and Print Servers

Print servers must be configured on the print server system before remote clients can configure them successfully across the network.

To configure a print server for use across a network, follow these steps:

  1. Log in as the superuser to the print server system (the system where the print server is physically attached).

  2. Replace client_name in the command below with the hostname of the client that needs access to the print server. Type

    addclient client_name
    

    addclient grants permission for the specified client_name to access print servers across the network.


    Note: The addclient command allows anyone who has access to the lp account on the print client to have the privileges of the lp account on the print server system. This means that your lp system can be modified by the client system users.

    If you want all remote workstations to be able to use print servers on the print server system, type

    addclient -a 
    

  3. Both print client and print server systems must be able to communicate across the network. For additional information on network communications, see IRIX Admin: Networking and Mail .

  4. On the print client, become superuser.

  5. On the print client, add the print server to the lp spooler with the script mknetpr:

    mknetpr
    

    mknetpr then prompts you for name of the queue, hostname, and printer name. You should be prepared to supply this information. Refer to mknetpr(1M) for more information.

  6. To set up this print server as the default printer, type this command on the print client, using the printer-name variable from the previous step:

    /usr/lib/lpadmin -dprinter-name 
    

Removing a Printer

Under some circumstances, you may want to remove one or more printers from the lp system. The rmprinter utility allows you to remove a specified printer. The preset utility allows you to reset your entire lp system to the way it was when you received your workstation from Silicon Graphics. To remove a specified printer, follow these steps:

  1. Become the superuser.

  2. Remove the printer by entering the command below. Replace printer-name with the name by which the printer is known to users accessing it:

    rmprinter printer-name 
    

Your printer is now removed from the lp system.

To remove all printers on your system, use the preset command.


Caution: Use preset with extreme care: it removes all printer configuration information.


  1. Become the superuser.

  2. Type

    preset 
    

Your lp system is now completely reset and all printers are removed.

Changing the Default Printer Destination

The default printer destination for a system can be an individual printer or a printer class. You can set it by using the lpadmin command with the -d option. The system default must be set by the user. A destination must already exist on the lp system before you can designate it as the default destination. See “Adding a Printer ” for setting up a printer.

The lp command determines a request's destination by checking for a -d option on the command line, which, if present, takes precedence over any other established destination. If -d is not present, lp checks to see if the user's environment variable LPDEST is set. If LPDEST is set, it is used; if LPDEST is not set, then the request is routed to the default destination. Setting the environment variable LPDEST allows a user to have a default destination other than the system default.

Managing Printing on Print Server Systems

Remote printing on the print server system allows users to send print jobs over the network with the same commands that send jobs to a local printer. After the print client's lp spooler queues the print request, it is sent across the network to the remote print server system, where it is processed by that system's lp spooler. As a result of this, you cannot accurately determine the status of a remote print request by using the lpstat command on the local system.

This section covers two aspects of remote printing:

Checking Print Server Status

When you send a print request across the network to a print server, the local lp system always reports that the request is being printed, regardless of its actual status in the print server system's lp spooler. To check the true status, you must remotely access (using rsh or rlogin) the print server system that is processing the job. The remote lp scheduler changes the request ID of any job sent to it over the network to reflect the actual name of the print server and gives it a new sequence number corresponding to its place in the print server queue. To determine a specific job's status, use the lpstat command. Example 2-9 uses rsh to access the print server system:

Example 2-9. Checking the Print Server's lp Status

rsh hostname lpstat -t

hostname is the name of the print server system.

Canceling Print Server Requests

Once you know the remote print server status, you can use the cancel command on the print server system to cancel jobs on the print server's queue. You must cancel a remote print job from the print server once it has been sent over the network by the local lp system.

Example 2-10 uses rsh to access the print server system:

Example 2-10. Canceling Print Server Requests

rsh hostname cancel print-server-name 
rsh hostname cancel request-ID 

hostname is the name of the print server system. Using the print-server-name cancels the job currently being printed. Using the request-ID cancels the specified job whether or not it is currently being printed

Configuring the BSD lpr Spooler System

The IRIX print spooler can accept print jobs from remote systems that use the BSD lpr protocol. This means the print spooler supports the lpr protocol used by many PCs and other non-IRIX systems and can act as a print server for those systems.

Silicon Graphics does supply the BSD lpr print spooler software, which can be installed and configured if you wish to use it on the IRIX system. Silicon Graphics does not support configuring the BSD lpr print spooler locally (you cannot have the printer physically connected to a Silicon Graphics system). For information about configuring a BSD lpr print spooler on another system, refer to any documentation describing the standard BSD operating system (see “Additional Resources”). Print requests can be submitted to a BSD print server once it is configured.

The BSD lpr print spooler allows you to access print servers that are attached to other systems on the network. Be sure to check the other systems, or contact the system administrator, to verify the type of spooling system those systems are using. Generally speaking, if a system has an /etc/printcap file configured, it is using the BSD lpr print spooling system.

Verify that the System Administrator of the BSD print server system includes your hostname in the print server system's /etc/hosts.equiv file and that your IP address and hostname appear in the print server system's /etc/hosts file. You must add the print server system's IP address and hostname to your system's /etc/hosts file.

If your files (documents) do not print once you have configured the BSD print spooler, see “Troubleshooting the BSD lpr Spooling System ” in Chapter 5. The troubleshooting section takes you to the point where you can see a copy of your document on the print server system. If the document disappears from the print server system's queue without printing, contact the System Administrator.

Verifying Installation of the BSD lpr Subsystem

Enter the following command to verify that the BSD lpr print spooling system was properly installed:

versions -av | grep print.sw.bsdlpr 

A sample output of this command looks like this:

I print.sw.bsdlpr 08/07/96 Berkeley `lpr' Printer Spooler

The BSD spooler is not loaded by default. Check to see if the subsystem is installed. If it is not, refer to IRIX Admin: Software Installation and Licensing and your release notes. Most users must use the inst command to install this subsystem.

Use the versions command (versions -av | grep print.sw.bsdlpr) to verify that you have the entire subsystem loaded. Creating an /etc/printcap file is not sufficient.

After you verify that the print.sw.bsdlpr subsystem is installed, edit the /etc/printcap file to configure the lpr spooling system. There are no tools to perform this function, so you need to edit the file manually. The remainder of this subsection takes you through this process. Be sure that you format the entries correctly. The /etc/printcap file expects information in a format similar to that in the /etc/termcap file.

Configuring the printcap File

Before you begin editing the /etc/printcap file, log in to your system as root.


Note: The printcap file is sensitive to syntax errors. The name field must begin at the first character on a line. The print server names must be separated by pipe symbols (the vertical bar “|”). The name line must be terminated with a colon followed by a backslash (“:\”). Make sure that there are no spaces, tabs, or any other character after the backslash.

The definition lines must begin with a tab character followed by a colon (:), followed by the field you are defining, followed by an equal sign. The definition line must end with a colon. See “printcap Examples”.

One name and three definition fields must be defined. They are

name 

This field must contain all the names the print server can be accessed as. It should include lp because, by default, lpr looks for lp in the name field of the /etc/printcap file. The names are separated with pipe symbols.

:rm 

Remote print server system name. This is the name of the system that has the print server physically connected to it.

:rp 

Remote print server name. This is the name of the remote print server on the print server system that you are trying to access.

:sd 

Spool directory. This is the name of your local spool directory. If you do not use the default directory /usr/spool/lpd, you must create the directory using the mkdir command.

printcap Examples

Following are two examples that can help you edit the /etc/printcap file. Example 2-11 shows how to configure the printer configuration file in two lines. Example 2-12 shows how to configure each option of the printcap file on a separate line. The examples are followed by explanations.

Example 2-11. printcap Example 1

lp|sleepy|sleepyprinter:\ 
     :lp=:\:rm=snowwhite.story.land:rp=doc:sd=/usr/spool/lpd:

Example 2-12. printcap Example 2

lp|sleepy|sleepyprinter:\
    :lp=:\
    :rm=snowwhite.story.land:\
    :rp=doc:\
    :sd=/usr/spool/lpd:

The examples show that the print server can be accessed by the names lp, sleepy, and sleepyprinter.

The print server system (where the print server is physically attached) is called snowwhite.story.land.

The name of the print server on the print server system is doc.

The local spool directory is called /usr/spool/lpd.

Using the lpr Command to Print

Now that you have the /etc/printcap file configured, make sure that the daemon is running. Enter the following command:

ps -ef | grep lpd 

Your system should return something similar to

root 195 1 0 11:06:04 ? 0:00 /usr/etc/lpd 
root 1293 753 2 13:20:39 ttyq6 0:00 grep lpd

The /usr/etc/lpd path at the end of the line indicates that the daemon is running. If only one line was returned (grep lpd), then start the lpd daemon by entering the following command:

/usr/etc/lpd 

Now, if you type ps -ef | grep lpd, you should see two lines.

As shown in “printcap Examples”, the print server can be accessed by three names: lp, sleepy, and sleepyprinter. By default, the lpr command looks for the field lp in the /etc/printcap file. If this is not the first name in the name field, you need to do one of two things:

  • Whenever you enter the lpr command you must use the -P option to specify a printer name other than lp.

    lpr -Psleepyprinter filename 
    

  • Alternatively, in your shell you can set the environment variable PRINTER to the name of the print server you wish to use.

    In the C shell:

    setenv PRINTER sleepy 
    

    In the Bourne shell:

    PRINTER=sleepy; export PRINTER 
    

Now you can enter the command

lpr filename 

After submitting your request to the print server, you can see if your job has made it to the print spooling queue by entering the following command:

lpq 

Your system should return something similar to

lp is ready and printing 
Rank Owner Job Files Total Size 
1st nina 113 filename 851 bytes