System Administration Guide, Volume 2

Chapter 5 Administering Printers (Tasks)

This chapter provides the procedures to administer printers. This is a list of the step-by-step instructions in this chapter.

For overview information about printing and the LP print service, see Chapter 2, Print Management (Overview).

Managing Printers and the Print Scheduler

This section provides instructions for day-to-day tasks you perform to manage printers and the print scheduler.

Deleting Printers and Printer Access

If a printer needs to be replaced or you want to move the printer to a different location, you must delete the printer information from the LP print service before you physically remove it from the print server. You should also make sure that all the current print requests on the printer are printed or moved to another printer to be printed.

Not only does the printer information need to be deleted from the print server, but it also needs to be deleted from the print clients or network name service. If you delete a local printer from a print server, you should delete the remote printer entry from the print clients or network name service. If you move a printer to another print server, you need to delete the old remote print entry from the print clients or network name service and add access to the remote printer in its new location.

See "How to Delete a Printer and Remote Printer Access" for detailed information on how to delete a local and remote printer. You can use Solaris Print Manager to delete a local or remote printer; however, Solaris Print Manager does not enable you to move queued print requests to another printer.

How to Delete a Printer and Remote Printer Access

  1. Log in as superuser or lp on a print client that has access to the printer you want to delete.

  2. Delete information about the printer from the print client.


    print-client# lpadmin -x printer-name
    

    -x

    Deletes the specified printer. 

    printer-name

    Name of the printer you want to delete. 

    Information for the specified printer is deleted from the print client's /etc/lp/printers directory.

  3. If the print client does not use another printer on the same print server, delete information about the print server from the print client.


    print-client# lpsystem -r print-server
    

    -r

    Removes the specified print server. 

    print-server

    Name of the print server you want to delete. 

    The print server is deleted from the print client's /etc/lp/Systems file.

  4. Repeat Step 2 through Step 3 on each print client that has access to the printer.

  5. Log in as superuser or lp on the print server.

  6. Stop accepting print requests on the printer.


    print-server# reject printer-name
    

    reject printer-name

    Rejects print requests for the specified printer. 

    This step prevents any new requests from entering the printer's queue while you are in the process of removing the printer. See "How to Accept or Reject Print Requests for a Printer" for a detailed description.

  7. Stop the printer.


    print-server# disable printer-name
    

    This step stops print requests from printing. See "How to Enable or Disable a Printer" for a detailed description on how to stop printing.

  8. Move any print requests that are still in the queue to another printer.

    See "How to Move Print Requests to Another Printer" for a detailed description on how to move print requests to another printer.

  9. Delete the printer from the print server.


    print-server# lpadmin -x printer-name
    

    Configuration information for the printer is deleted from the print server's /etc/lp/printers directory.

  10. Delete information about the print clients that were using the printer you just deleted, unless they are still using another printer on the print server.


    print-server# lpsystem -r print-client1 [,print-client2...]

    -r

    Removes the specified print client. 

    print-client

    Name of the print client you want to delete from the print server. You can specify multiple print clients in this command. Use a space or a comma to separate print client names. If you use spaces, enclose the list of print clients in quotes. 

    The specified print clients are deleted from the print server's /etc/lp/Systems file.

  11. Verify the printer information has been deleted.

    1. Check the printer information has been deleted on the print client.


      print-client$ lpstat -p printer-name -l
      

      You should receive an error indicating that the printer does not exist in the output of the above command.

    2. Check the printer information has been deleted on the print server.


      print-server$ lpstat -p printer-name -l
      

      You should receive an error indicating that the printer does not exist in the output of the above command.

Example--Deleting a Printer and Remote Printer Access

In the following example, the commands delete the printer luna from the print client terra and from the print server jupiter, and also delete the print client terra from the print server.


terra# lpadmin -x luna
Removed "luna".
terra# lpstat -p luna -l 
jupiter# lpadmin -x luna
jupiter# lpsystem -r terra
Removed "terra".
jupiter# lpstat -p luna -l 

Checking Printer Status

Many routine printer administration tasks require information about the status of the LP print service or a specific printer. For example, you can determine which printers are available for use and examine the characteristics of those printers. You can use the lpstat command to find out status information about the LP print service or a specific printer.

How to Check the Status of Printers

  1. Log in on any system on the network.

  2. Check the status of printers by using the lpstat command.

    Only the most commonly used options are shown here. See lpstat(1) for other options.


    $ lpstat [-d] [-p printer-name [-D] [-l]] [-t]

    -d

    Shows the system's default printer. 

    -p printer-name

    Shows if a printer is active or idle, when it was enabled or disabled, and whether it is accepting print requests. 

    You can specify multiple printer names with this command. Use a space or a comma to separate printer names. If you use spaces, enclose the list of printer names in quotes. If you don't specify printer-name, the status of all printers is displayed.

    -D

    Shows the description of the specified printer-name.

    -l

    Shows the characteristics of the specified printer-name.

    -t

    Shows status information about the LP print service, including the status of all printers: whether they are active and whether they are accepting print requests. 

Examples--Checking the Status of Printers

In the following example, the command requests the name of the system's default printer.


$ lpstat -d
system default destination: luna

In the following example, the command requests the status of the printer luna.


$ lpstat -p luna
printer luna is idle. enabled since Jul 12 11:17 1999. available.

In the following example, the command requests a description of the printers asteroid and luna.


$ lpstat -p "asteroid luna" -D
printer asteroid faulted. enabled since Jul 12 11:35 1999. available.
unable to print: paper misfeed jam

Description: Printer by break room
printer luna is idle. enabled since Jul 12 11:36 1999. available.
Description: Printer by server room.

In the following example, the command requests the characteristics of the printer luna.


$ lpstat -p luna -l
printer luna is idle. enabled since Mon Jul 12 15:02:32 ...
        Form mounted: 
        Content types: postscript
        Printer types: PS
        Description:
        Connection: direct
        Interface: /usr/lib/lp/model/standard
        After fault: continue
        Users allowed:
                (all)
        Forms allowed:
                (none)
        Banner not required
        Character sets:

        Default pitch:
        Default page size: 80 wide 66 long
        Default port settings:  

Restarting the Print Scheduler

The print scheduler, lpsched, handles print requests on print servers. However, there might be times when the print scheduler stops running on a system, so print requests stop being accepted or printed.

To restart the print scheduler, you can use the /usr/lib/lp/lpsched command. If a print request was printing when the print scheduler stopped running, the print request will be printed in its entirety when you restart the print scheduler.

How to Stop the Print Scheduler

  1. Log in as superuser or lp on the print server.

  2. Check to see if the print scheduler is running.


    # lpstat -r
    

    If the print scheduler is not running, the message scheduler is not running is displayed.

  3. If the print scheduler is running, stop it.


    # /usr/lib/lp/lpshut
    

How to Restart the Print Scheduler

  1. Log in as superuser or lp on the print server.

  2. Check to see if the print scheduler is running.


    # lpstat -r
    

    If the print scheduler is not running, the message scheduler is not running is displayed.

  3. If the print scheduler is not running, start it.


    # /usr/lib/lp/lpsched
    

Setting or Resetting Miscellaneous Printer Definitions

This section provides step-by-step instructions on setting or resetting printer definitions. Some of the following printer definitions can be set using Solaris Print Manager. The procedures below use the LP commands to quickly set or reset printer definitions.

How to Add a Printer Description

  1. Log in as superuser or lp on the print server.

  2. Add a printer description by using the lpadmin(1M) command.


    # lpadmin -p printer-name -D "comment"

    -p printer-name

    Name of the printer for which you are adding a description. 

    -D "comment"

    Specifies the characteristics of the printer, such as location or administrative contact. Enclose characters that the shell might interpret (like *, ?, \, !, ^) in single quotation marks.

    The printer description is added in the print server's /etc/lp/printers/printer-name/comment file.

  3. Verify the Description information is correct.


    $ lpstat -p printer-name -l
    

Example--Adding a Printer Description

In the following example, the command adds a printer description for the printer luna.


# lpadmin -p luna -D "Nathans office"

Setting Up a Default Printer Destination

You can specify a default printer destination for a user so the user doesn't need to type the printer name when using the print commands. Before you can designate a printer as the default, the printer must be known to the print service on the system. You can set a user's default printer destination by setting any of the following:

When an application provides a printer destination, that destination is used by the print service, regardless of whether you have set a system's default printer destination. If an application doesn't provide a printer destination or if you don't provide a printer name when using a print command, the print command searches for the default printer in a specific order. The table below shows the search order for a system's default printer destination.

Table 5-1 Search Order for Default Printer Destinations

Search Order 

Using /usr/bin/lp Command

Using SunOS/BSD Compatibility Commands (lpr, lpq, and lprm)

First 

LPDEST variable

PRINTER variable

Second 

PRINTER variable

LPDEST variable

Third 

System's default printer 

System's default printer 

How to Set a System's Default Printer

  1. Log in as superuser or lp on the system for which you want to set a default printer.

  2. Set the system's default printer by using the lpadmin command.


    # lpadmin -d [printer-name]

    -d printer-name

    Name of the printer you are assigning as the system's default printer. If you don't specify printer-name, the system is set up with no default printer.

    The default printer name is entered in the system's /etc/lp/default file.

  3. Check the system's default printer by using the lpstat command.


    $ lpstat -d
    

Example--Setting a System's Default Printer

In the following example, the command sets the printer luna as the system's default printer. This means that luna will be used as the system's default printer if the LPDEST or PRINTER environment variables are not set.


# lpadmin -d luna
# lpstat -d
system default destination: luna

Printing Banner Pages

A banner page identifies who submitted the print request, the print request ID, and when the request was printed. A banner page will also have a modifiable title to help users identify their printouts.

Banner pages make identifying the owner of a print job easy, which is especially helpful when many users submit jobs to the same printer. Printing banner pages uses more paper, however, and might not be necessary if a printer has only a few users. In some cases, printing banner pages is undesirable. For example, if a printer has special paper or forms mounted, like paycheck forms, printing banner pages might cause problems.

By default, the print service forces banner pages to be printed. However, you can give users a choice to turn off printing of a banner page when they submit a print request. You can set this choice through the lpadmin command or through Admintool. If you give the users a choice, they have to use the -o nobanner option to turn off printing of a banner page.

Also, you can turn off banner pages for a printer so they are never printed. This is important if you have a situation where you don't need or want banner pages. You can turn off banner page printing by using the lpadmin command.

Table 5-2 Banner Page Printing

With This Command .... 

Banner Page Printing Is ... 

Override? 

lpadmin -p printer -o banner or

lpadmin -p printer -o banner=always

Required and printed 

If you are a regular user and use lp -o nobanner, the request is printed, but the nobanner argument is ignored.

If you are root or lp, the nobanner argument is honored.

lpadmin -p printer -o nobanner

lpadmin -p printer -o banner=optional

On by default, but can be disabled on a per request basis with the lp -o nobanner command.

N/A 

lpadmin -p printer -o banner=never

Disabled 

No 

For step-by-step command-line instructions, see "How to Turn Off Banner Pages".

How to Make Banner Pages Optional

  1. Log in as superuser or lp on the print server.

  2. Make banner pages optional by using the lpadmin command.


    # lpadmin -p printer-name -o nobanner=optional
    

    -p printer-name

    Name of the printer for which you are making banner pages optional. 

    -o nobanner=optional

    Enables users to specify no banner page when they submit a print request. 

    If you want to force a banner page to print with every print request, specify the -o banner=always option.

    The banner page setting is entered in the print server's /etc/lp/printers/printer-name/configuration file.

  3. Verify the output from the following command contains the line Banner not required.


    $ lpstat -p printer-name -l
    

Example--Making Banner Pages Optional

In the following example, the command enables users to request no banner page on the printer luna.


# lpadmin -p luna -o nobanner=optional

How to Turn Off Banner Pages

  1. Log in as superuser or lp on the print server.

  2. Turn off banner printing by using the lpadmin command.


    lpadmin -p printer-name -o nobanner=never
    

    -p printer-name

    Name of the printer for which you are making banner pages optional. 

    -o nobanner=never

    Disables banner page printing under all circumstances. 

    The banner page setting is entered in the print server's /etc/lp/printers/printer-name/configuration file.

  3. Verify the output from the following command contains the line Banner not printed.


    $ lpstat -p printer-name -l
    
  4. Submit a print request to the printer to make sure a banner page does not print.

Example--Turning Off Printing Banner Pages

In the following example, the command disables printing banner pages on the printer luna.


# lpadmin -p luna -o nobanner=never

Setting Up Printer Classes

The print service enables you to group several locally attached printers into one class. You can perform this task only by using the lpadmin -c command.

When you have set up a printer class, users can then specify the class (rather than individual printers) as the destination for a print request. The first printer in the class that is free to print is used. The result is faster turnaround because printers are kept as busy as possible.

There are no default printer classes known to the print service; printer classes exist only if you define them. Here are some ways you could define printer classes:

Alternatively, a class might contain several printers that are used in a particular order. The LP print service always checks for an available printer in the order in which printers were added to a class. Therefore, if you want a high-speed printer to be accessed first, you would add it to the class before you add a low-speed printer. As a result, the high-speed printer would handle as many print requests as possible. The low-speed printer would be reserved as a backup printer when the high-speed printer is in use.


Note -

Print requests are balanced between printers in a class only for local printers.


Class names, like printer names, must be unique and can contain a maximum of 14 alphanumeric characters and underscores.

You are not obligated to define printer classes. You should add them only if you determine that using printer classes would benefit users on the network.

How to Define a Class of Printers

  1. Log in as superuser or lp on the print server.

  2. Define a class of printers by using the lpadmin command.


    # lpadmin -p printer-name -c printer-class
    

    -p printer-name

    Name of the printer you are adding to a class of printers. 

    -c printer-class

    Name of a class of printers. 

    The specified printer is added to the end of the list in the class in the print server's /etc/lp/classes/printer-class file. If the printer class does not exist, it is created.

  3. Verify the printers in a printer class by using the lpstat command.


    $ lpstat -c printer-class
    

Example--Defining a Class of Printers

In the following example, the command adds the printer luna in the class roughdrafts.


# lpadmin -p luna -c roughdrafts

Setting Up Printer Fault Alerts

If you choose, the print service can notify you when it detects a printer fault. You can select any of the following methods to receive printer fault notification with the lpadmin -A command or with Solaris Print Manager:

However, the lpadmin -A command offers you an additional option of receiving a message specified by the program of your choice. It also enables you to selectively turn off notification for an error that you already know about.

Unless you specify a program to deliver fault notification, the content of the fault alert is a predefined message that says the printer has stopped printing and needs to be fixed.

The table below lists the alert values that you can set for a printer with the lpadmin -A command. These alert values can also be set for print wheels, font cartridges, and forms.

Table 5-3 Values for Printing Problem Alerts

Value for -A alert

Description 

'mail [user-name]'

Send the alert message by email to root or lp on the print server, or the specified user-name, which is a name of a user.

'write [user-name]'

Send the alert message to the root or lp console window on the print server, or to the console window of the specified user-name, which is a name of a user. The specified user must be logged in to the print server to get the alert message.

'command'

Run the command file for each alert. The environment variables and current directory are saved and restored when the file is executed.

quiet

Stop alerts until the fault is fixed. Use this when you (root or specified user) receive repeated alerts. 

none

Do not send any alerts. This is the default if you don't specify fault alerts for a printer. 

How to Set Fault Alerts for a Printer

  1. Log in as superuser or lp on the print server.

  2. Set fault alerts for a printer with the lpadmin command.


    # lpadmin -p printer-name -A alert [-W minutes]

    -p printer-name

    Name of the printer for which you are specifying an alert for printer faults. 

    -A alert

    Specifies what kind of alert will occur when the printer faults. See Table 5-3 for detailed information about the valid values for alert. Some valid values are mail, write, and quiet.

    -W minutes

    Specifies how often (in minutes) the fault alert will occur. If you don't specify this option, the alert is sent once. 

    The fault alert setting is entered in the print server's /etc/lp/printers/printer-name/alert.sh file.

  3. Check the information following the On fault heading from the output of the following command.


    $ lpstat -p printer-name -l
    

Examples--Setting Fault Alerts for a Printer

In the following example, the command sets up the printer mars to send fault alerts by email to a user named joe, with reminders every 5 minutes.


# lpadmin -p mars -A 'mail joe' -W 5

In the following example, the command sets up the printer venus to send fault alerts to the console window, with reminders every 10 minutes.


# lpadmin -p venus -A write -W 10

In the following example, the command stops fault alerts for the printer mercury.


# lpadmin -p mercury -A none

In the following example, the command stops fault alerts until the printer venus has been fixed.


# lpadmin -p venus -A quiet

Setting Up Printer Fault Recovery

If you choose not to send any fault notification, you can find out about printing faults so you can correct the problem. The LP print service will not continue to use a printer that has a fault. In addition to alerts for printer faults, you can also provide alerts that tell the system administrator to mount print wheels, font cartridges, and forms when print requests require them.

You can define the fault recovery options for a printer only by using the lpadmin -F command. This task is not available in Solaris Print Manager.

Printer faults can be as simple as running out of paper or needing to replace a toner cartridge. Other more serious problems can include complete printer failure or power failure. After you fix a printer fault, the print request that was active when the fault occurred begins printing in one of three ways:

A print filter is required to continue printing from the top of a page where the printing stopped. A print filter records the control sequences used by the printer to track page boundaries, which the default filters used by the print service cannot do. You will be notified by the print service if recovery cannot proceed with the specified print filter. For information about writing filters, see "How to Create a New Print Filter".

If you want printing to resume immediately after a printer fault is fixed, enable the printer by using the enable command.

The table below lists the fault recovery values you can set for a printer with the lpadmin -F command.

Table 5-4 Values for Printer Fault Recovery

Value for -F recover-options

Description 

beginning

After a fault recovery, printing restarts from the beginning of the file. 

continue

After a fault recovery, printing starts at the top of the page where the printing stopped. This recovery option requires a print filter.

wait

After a fault recovery, printing stops until you enable the printer. After you enable the printer (enable command), printing starts at the top of the page where printing stopped. This recovery option requires a print filter.

How to Set Printer Fault Recovery

  1. Log in as superuser or lp on the print server.

  2. Set up fault recovery for the printer with the lpadmin(1M) command.


    # lpadmin -p printer-name -F recovery-options
    

    -p printer-name

    Name of the printer for which you are specifying fault recovery. 

    -F recovery-options

    One of the three valid recovery options: 

    beginning, continue, or wait.

    See Table 5-4 for detailed information about the valid values for recovery-options.

    The fault recovery setting is entered in the print server's /etc/lp/printers/printer-name/configuration file.

  3. Check the information following the After fault heading in the output of the following command.


    $ lpstat -p printer-name -l
    

Example--Setting Printer Fault Recovery

In the following example, the command sets up the printer luna to continue printing at the top of the page where printing stopped.


# lpadmin -p luna -F continue

Limiting User Access to a Printer

You can control which users can access some or all of the available printers. For example, you can prevent some users from printing on a high-quality printer to minimize expense. To restrict user access to printers, you can create allow and deny lists using the lpadmin -u command on the print server. (Solaris Print Manager enables you to create only allow lists.) If you create neither, a printer is available to all users who can access the printer.

An allow list contains the names of users allowed access to the specified printer; a deny list contains the names of users denied access to the specified printer.

The rules for allow and deny lists are:

When You ... 

Then ... 

Do not create allow and deny lists, or if you leave both lists empty 

All users can access the printer. 

Specify all in the allow list

All users can access the printer. 

Specify all in the deny list

All users, except root and lp (on the server), are denied access to the printer. 

Make any entry in the allow list 

The deny list is ignored. Only those users who are listed can access the printer. 

Create a deny list, but you do not create an allow list or you leave the allow list empty 

Users who are listed in the deny list are denied access to the printer. 

Because the print server is actually controlling access to the printer, allow and deny lists can only be created on the print server itself. If you create allow and deny lists, the print server will exclusively control user access to printers.

The table below lists the values you can add to an allow or deny list to limit user access to a printer.

Table 5-5 Values for Allow and Deny Lists

Value for user-list

Description 

user

User on any system

all

All users on all systems 

none

No user on any system 

system!user

User on system only

!user

User on local system only

all!user

User on any system

all!all

All users on all systems 

system!all

All users on system

!all

All users on local system 

How to Limit User Access to a Printer

  1. Log in as superuser or lp on the print server.

  2. Allow or deny users access to a printer by using the lpadmin command.


    # lpadmin -p printer-name -u allow:user-list [ deny:user-list]

    -p printer-name

    Name of the printer to which the allow or deny user access list applies. 

    -u allow:user-list

    User names to be added to the allow user access list. You can specify multiple user names with this command. Use a space or a comma to separate names. If you use spaces, enclose the list of names in quotes. 

    Table 5-5 provides the valid values for user-list.

    -u deny:user-list

    User names to be added to the deny user access list. You can specify multiple user names with this command. Use a space or a comma to separate names. If you use spaces, enclose the list of names in quotes. 

    Table 5-5 provides the valid values for user-list.

    The specified users are added to the allow or deny user access list for the printer in one of the following files on the print server:

    /etc/lp/printers/printer-name/users.allow

    /etc/lp/printers/printer-name/users.deny


    Note -

    If you specify none as the value for user-list in the allow user access list, the following files are not created for the print server:

    /etc/lp/printers/printer-name/alert.sh

    /etc/lp/printers/printer-name/alert.var

    /etc/lp/printers/printer-name/users.allow

    /etc/lp/printers/printer-name/users.deny


  3. Check the information following the Users allowed or Users denied heading in the output of the following command.


    $ lpstat -p printer-name -l
    

Examples--Limiting User Access to a Printer

In the following example, the command allows only the users nathan and george access to the printer luna.


# lpadmin -p luna -u allow:nathan,george

In the next example, the command denies the users nathan and george access to the printer asteroid.


# lpadmin -p asteroid -u deny:"nathan george"

Managing Print Requests

When a user submits a print request from a print client, the print request is added to a queue on the print server before it is sent to the printer. While a print request is in the queue, you can cancel or gain status information on the request from a client system. You must login to the print server to move, hold, resume, or change the priorities of print requests with LP commands. These actions can help you keep printing services operating smoothly.

The table below lists the values for changing the priority of a print request with the lp -H command.

Table 5-6 Values for Changing the Priority of a Print Request

Value for -H change-priority

Description 

hold

Places the print request on hold until you cancel it or instruct the LP print service to resume printing the request. 

resume

Places a print request that has been on hold back in the queue. It will be printed according to its priority and placement in the queue. If you put a hold on a print job that is already printing, resume puts the print request at the head of the queue so it becomes the next request printed.

immediate

Places a print request at the head of the queue. If a request is already printing, you can put it on hold to allow the next request to print immediately. 

How to Check the Status of Print Requests

  1. Log in on any system on the network.

  2. Check the status of printers and print requests by using the lpstat command.

    Only the most commonly used options are shown here. See lpstat(1) for other valid options.


    $ lpstat -o [list] | -u [user-list]

    -o list

    Shows the status of print requests on a specific printer. list can be one or more printer names, printer class names, or print request IDs.

    You can specify multiple printer names, class names, and IDs for list. Use a space or a comma to separate values. If you use spaces, enclose the list of values in quotes.

    If you don't specify list, the status of print requests to all printers is displayed.

    -u user-list

    Shows the status of print requests for a specific user. user-list can be one or more user names.

    You can specify multiple users with this command. Use a space or a comma to separate user names. If you use spaces, enclose the list of names in quotes. 

    If you don't specify user-list, the status of print requests for all users is displayed.

    When used to check the status of print requests, the lpstat command displays one line for each print request. From left to right, the line shows the request ID, the user, the output size in bytes, the date and time of the request, and information about the request, such as "being filtered."

Examples--Checking the Status of Print Requests

In the following example, the command shows that user fred has one print request queued to the printer luna.


$ lpstat
luna-1    fred     1261    Jul 12 17:34

In the following example, the command shows that the user paul currently has no print requests in queue.


$ lpstat -u paul

In the following example, the command shows that there are two print requests on the printer moon.


$ lpstat -o moon
moon-78    root     1024   Jul 14 09:07
moon-79    root     1024   Jul 14 09:08

Processing or Stopping Printing

The enable(1) and disable(1) commands control whether a printer prints or stops printing requests that are in the print queue. When you disable a printer, the printer stops printing requests in queue; however, requests are still added to the queue. (You must set the printer to reject print requests so requests are not added to the queue. See "Accepting or Rejecting Print Requests" for information about rejecting print requests.)

A printer is enabled to print and accepts print requests when it is added using Solaris Print Manager. Solaris Print Manager doesn't provide any additional printer processing management.

You must enable the printer whenever it has been disabled, which can happen when a printer fault occurs. When you enable a printer, it prints requests from the print queue until the queue is empty, even if the print service rejects additional requests for the print queue.

The figure below shows the point at which processing of print requests is interrupted when a printer is disabled.

Figure 5-1 What Happens When a Printer Is Enabled or Disabled

Graphic

How to Accept or Reject Print Requests for a Printer

  1. Log in as superuser or lp on the print server.

  2. Stop accepting print requests for the printer by using the reject(1M) command.


    # reject [-r "reason"] printer-name
    

    -r "reason"

    Provides users a reason why the printer is rejecting print requests. The reason is stored and displayed whenever a user checks on the status of the printer (lpstat -p).

    printer-name

    Name of the printer that will stop accepting print requests. 

    The queued requests will continue printing as long as the printer is enabled. For instructions on disabling a printer so it stops printing, see "How to Enable or Disable a Printer".

  3. Start accepting print requests for the printer by using the accept(1M) command.


    # accept printer-name
    
  4. Check the status of the printer to see whether it is accepting or rejecting print requests by using the lpstat command.


    $ lpstat -p printer-name
    

Examples--Accepting or Rejecting Print Requests for a Printer

In the following example, the command stops the printer luna from accepting print requests.


# reject -r "luna is down for repairs" luna
destination "luna" will no longer accept requests

In the following example, the command sets the printer luna to accept print requests.


# accept luna
destination "luna" now accepting requests

Accepting or Rejecting Print Requests

The accept and reject commands enable you to turn on or turn off a print queue that stores requests to be printed.

When you use the reject command, the print queue for a specified printer is turned off--no new print requests can enter the queue on the print server. All print requests that are in the queue are still printed. You must disable the printer if you want it to stop printing requests that are already in the queue. Table 5-7 compares the functions of the accept, reject, enable, and disable commands.

Table 5-7 Functions of accept/reject and enable/disable Commands

Command 

Function 

accept

Accept print requests that are sent to the print queue. 

enable

Print the requests that are in the print queue. 

reject

Reject print requests that are sent to the print queue. 

disable

Stop printing requests that are currently in the print queue. 

See "Processing or Stopping Printing" for information about disabling a printer.

If a print request is rejected, the print service writes or mails a message to the user who submitted the request, saying that print requests are not being accepted for the specified printer.

You can also specify a reason for not accepting requests through the command line. The reason is displayed on users' systems when one tries to check the printer's queue. The figure below shows the point at which processing of print requests is interrupted when a print queue rejects print requests.

Figure 5-2 What Happens When a Print Queue Accepts or Rejects Requests

Graphic

How to Enable or Disable a Printer

  1. Log in as superuser or lp on the print server.

  2. Stop printing print requests on the printer by using the disable command.


    # disable [-c | -W] [-r "reason"] printer-name
    

    disable

    Cancels the current job, then disables the printer. The current job is saved to reprint when the printer is enabled.

    -c

    Cancels the current job, then disables the printer. The current job is not printed later. 

    -W

    Waits until the current job is finished before disabling the printer. 

    -r "reason"

    Provides users with a reason why the printer is disabled. The reason is stored and displayed whenever a user checks on the status of the printer (lpstat -p).

    printer-name

    Name of the printer that will stop printing print requests. 


    Note -

    You cannot enable or disable classes of printers. Only individual printers can be enabled or disabled.


  3. Start printing print requests on the printer by using the enable command.


    # enable printer-name
    
  4. Verify the printer is enabled.


    $ lpstat -p printer-name
    

Examples--Enabling or Disabling a Printer

In the following example, the command stops the current job on the printer luna, saves it to print later, and provides a reason why the printer has stopped printing print requests.


# disable -r "changing the form" luna

In the following example, the command starts printing print requests on the printer luna.


# enable luna
printer "luna" enabled

Canceling a Print Request

You can use the cancel(1) to cancel print requests from printer queues or to cancel jobs that are printing. There are three ways to use the cancel command:

When you use cancel, a message tells you the request(s) are canceled, and the next request in queue is printed. You can cancel a print request only if you are:

To cancel a specific request, you need to know its request ID. The request ID is comprised of the name of the printer, a dash, and the number of the print request--for example, luna-185. When you submit the print request, the request ID is displayed. If you do not remember the print request ID, you can find it by using the lpstat command with the -o printer option.

How to Cancel a Print Request

  1. If you are going to cancel print requests of other users, become superuser or lp.

  2. Determine the request IDs of the print requests to cancel by using the lpstat command.

    See "How to Check the Status of Print Requests" for more details.

  3. Cancel a print request by using the cancel command.


    $ cancel request-id | printer-name
    

    request-id

    Request ID of a print request to be canceled. You can specify multiple request IDs with this command. Use a space or a comma to separate request IDs. If you use spaces, enclose the list of request IDs in quotes.

    printer-name

    Specifies the printer for which you want to cancel the currently printing print request. 

    You can specify multiple printer names with this command. Use a space or a comma to separate printer names. If you use spaces, enclose the list of printer names in quotes. 

  4. Verify the print requests are canceled.


    $ lpstat -o printer-name
    

Examples--Canceling a Print Request

In the following example, the command cancels the luna-3 and luna-4 print requests.


$ cancel luna-3 luna-4
request "luna-3" cancelled
request "luna-4" cancelled

In the following example, the command cancels the print request that is currently printing on the printer luna.


# cancel luna
request "luna-9" cancelled

How to Cancel a Print Request From a Specific User

  1. (Optional) Become superuser or lp if you are going to cancel print requests of other users.

  2. Cancel a print request from a specific user with the cancel command.


    $ cancel -u user-list [printer-name]

    -u user-list

    Cancels the print request for a specified user.  

    user-list can be one or more user names. Use a space or a comma to separate user names. If you use spaces, enclose the list of names in quotes.

    printer-name

    Specifies the printer for which you want to cancel the specified user's print requests. 

    printer-name can be one or more printer names. Use a space or a comma to separate printer names. If you use spaces, enclose the list of printer names in quotes.

    If you don't specify printer-name, the user's print requests will be canceled on all printers.

Examples--Canceling a Print Request From a Specific User

In the following example, the command cancels all the print requests submitted by the user george on the printer luna.


# cancel -u george luna
request "luna-23" cancelled

In the following example, the command cancels all the print requests submitted by the user george on all printers.


# cancel -u george
request "asteroid-3" cancelled
request "luna-8" cancelled

Moving a Print Request

If you plan to change the way a printer is used or decide to take a printer out of service, you should set up the LP print service to reject additional print requests, and then move or cancel any requests that are currently queued to the printer. You can use the lpmove(1M) command to move individual or all print requests to another local printer.

Request IDs are not changed when you move print requests, so users can still find their requests. Print requests that have requirements (such as file content type or forms) that cannot be met by the newly specified printer cannot be moved; they must be canceled.

How to Move Print Requests to Another Printer

To move all print requests from one printer to another, you do not need to know the request IDs; however, it is a good idea to see how many print requests are affected before you move them.

  1. Log in as superuser or lp on the print server.

  2. (Optional) Check the request IDs of the print requests on the original printer.


    # lpstat -o printer-name1
    
  3. (Optional) Check if the destination printer is accepting print requests.


    # lpstat -p printer-name2
    

    -p printer-name2

    Name of the printer to which you are moving the print requests. 

  4. Move all the print requests from the original printer to the destination printer.


    # lpmove printer-name1 printer-name2
    

    printer-name1

    Name of the printer from which all print requests will be moved.  

    printer-name2

    Name of the printer to which all print requests will be moved. 

    If some requests cannot be printed on the destination printer, they are left in the original printer's queue. By using request IDs, you can also move specific print requests to another printer with the lpmove command.

  5. Start accepting print requests on the original printer.

    If you move all the print requests to another printer, the lpmove command automatically stops accepting print requests for the printer. This step is necessary if you want to begin accepting new print requests for the printer.


    # accept printer-name1
    
  6. Check for any remaining print requests in the original printer's queue by using the following command.


    $ lpq -P printer-name1
    

    Make sure all specified print requests were moved to the destination printer's queue by using the following command.


    $ lpq -P printer-name2
    

Example--Moving Print Requests to Another Printer

In the following example, the lpmove command moves print requests from the printer luna to the printer terra, and the accept command tells the original printer luna to resume accepting print requests.


# lpmove luna terra
# accept luna

Changing the Priority of Print Requests

After a user has submitted a print request, you can change its priority in the print server's queue by:

How to Change the Priority of a Print Request

  1. Log in as superuser or lp on the print server that is holding the print request.

  2. Determine the request IDs of the print requests whose priority you want to change by using the lpstat command.

    See "How to Check the Status of Print Requests" for more information.

  3. Change the priority of a print request by using the lp command.


    # lp -i request-id -H change-priority
    

    -i request-id

    Request ID of a print request you want to change.

    You can specify multiple request IDs with this command. Use a space or a comma to separate request IDs. If you use spaces, enclose the list of request IDs in quotes. 

    -H change-priority

    One of the three ways to change the priority of a print request: hold, resume, immediate.

    See Table 5-6 for detailed information about valid values for change-priority.

    You can also use the lp -q command to change the priority level of a specified print request. You can change the priority level from 0, the highest priority, to 39, the lowest priority.

Example--Changing the Priority of a Print Request

In the following example, the command changes a print request with the request ID asteroid-79, to priority level 1.


# lp -i asteroid-79 -q 1