This chapter describes the typical printing tasks that a system administrator might perform on a daily, weekly, or occasional basis. The printing services and tools that you can use to perform these tasks are covered in each of the subsequent task sections of this chapter.
For the step-by-step procedures that are associated with administering printing services and printers, see the following task maps:
Administering Printers by Using Solaris Print Manager (Task Map)
Administering Printers and the Print Scheduler by Using LP Print Commands (Task Map)
Setting Printer Definitions by Using LP Print Commands (Task Map)
Administering Print Requests by Using the LP Print Commands (Task Map)
Administering Printers That Are Associated With PPD Files (Task Map)
For overview information, see Chapter 1, Introduction to Printing in the Solaris Operating System.
For information about how to set up printing services see Chapter 3, Setting Up Printing Services (Tasks).
For information about setting up printers, see Chapter 4, Setting Up Printers (Tasks)
For information about how to administer printing services and printers by using printing protocols, see Chapter 6, Administering Printers That Use Network Printing Protocols (Tasks)
After you set up print servers and print clients, you might need to perform these administration tasks frequently:
Delete a printer
Delete remote printer access
Check the status of printers
Restart the print scheduler
A local printer is a printer that has a print queue that has been defined on a system that is local to you. A remote printer is a printer that has a print queue that is defined anywhere but your local system. These terms do not have anything to do with whether the printer is physically attached to a system or to the network. The terms strictly define where the print queue was configured, which is important to note because where the print queue is configured determines the print server for that printer. One print server can support all the printers at a particular site.
A network-attached printer is a hardware device that is connected directly to the network. A network printer transfers data directly over the network to the output device. The printer or network connection hardware has its own system name and IP address.
Network printers often have software support provided by the printer vendor. If your printer has printer vendor-supplied software, then use the printer vendor software. If the network printer vendor does not provide software support, Sun supplied software is available. This software provides generic support for network-attached printers. However, this software is not capable of providing full access to all possible printer capabilities.
The terms “attached” and “network” refer to the way printers are connected to the world.Neither of these terms imply local or remote. Sometimes, these terms are used interchangeably, due to the fact that local printers and attached printers tend to be the same. However, the terms local and remote refer to print queue configuration. The terms, attached and network, refer to the physical connection of the printer hardware only, not how the print queue was configured.
For information about setting up a directly attached and network printers, see Setting Up Printers on a Print Server (Task Map).
For information about using over-the-wire network printing protocols for printing on the network, see Using Printing Protocols in the Solaris Release.
Each print client communicates directly with a print sever over the network. The communication is done between the requesting command, such as lp, lpstat, cancel, lpr, lpq, or lprm, and the print service on the print server. This communication reduces the print system overhead on client–only systems, improving scalability, performance and accuracy of data.
Print servers listen for print requests with the Internet services daemon (inetd). Upon hearing a request for print service from the network, the inetd daemon starts a program called the protocol adaptor (in.lpd). The protocol adaptor translates the print request and communicates it to the print spooler, and returns the results to the requester. This protocol adaptor starts on demand and exits when it has serviced the network request. This process eliminates idle system overhead for printing. This process also eliminates any additional system configuration for network printing support as was the case in previous versions of Solaris printing software.
Setting definitions for the printers on your network is an ongoing task that lets you provide a more effective print environment for users. For example, you can assign printer descriptions for all your site's printers to help users find where a printer is located. Or, you can define a class of printers to provide the fastest turnaround for print requests.
For information on setting up printer definitions and planning printers on your network, see Chapter 2, Planning for Printing in the Solaris Operating System (Tasks).
Specific modifications have been made to incorporate the RIP feature and PPD files into the Solaris print subsystem. Two interface scripts, standard_foomatic, and netstandard_foomatic, are available. These interface scripts provide the generic Solaris interface between the Solaris spooler and the back-end process of the Solaris print server.
For more information, seeAdministering Printers That Are Associated With PPD Files (Task Map) and Using PPD Files To Set Up Printers.
Depending on your site's requirements and the types of printers you have on the network, you might have to set up and administer printer-specific features of the LP print service. For example, you can assign different print wheels, filters, and forms to different printers. For background information and step-by-step instructions on how to set up character sets, print filters, forms, and fonts, see Chapter 7, Customizing Printing Services and Printers (Tasks).
The following tables lists categories of printer administration tasks you can perform by using the Solaris Print Manager GUI. Note that you cannot perform all printer administration tasks by using Solaris Print Manager. For some of these tasks, for example, stopping and starting the print scheduler, you must use LP print commands. For more information, see Administering Print Requests by Using the LP Print Commands (Task Map).
Task |
Description |
For Instructions |
---|---|---|
Delete a printer or access to a printer by using Solaris Print Manager |
Use Solaris Print Manager to delete local and remote printers and remove printer access. However, you cannot move queued print requests to another printer by using Solaris Print Manager. | |
Set or reset miscellaneous printer definitions by using Solaris Print Manager |
Add, modify, delete a printer, and add printer access by using the Solaris Print Manager GUI tool. Many of the same options that can be used with the lpadmin command are also available in Solaris Print Manager. |
Use this procedure to remove a printer from service and to remove the printer information from the print server.
For information about how to delete a printer and remove printer access by using LP print commands, see How to Delete a Printer and Remove Printer Access by Using LP Print Commands.
On the print server for the printer that you want to delete, log in as superuser, lp, or assume an equivalent role.
Stop accepting print requests for the printer.
# reject printer-name |
Move any print requests that are still in the print queue to another printer.
For information about how to move print requests to another printer, see How to Move Print Requests to Another Printer.
For information about how to stop printing, see How to Enable or Disable a Printer.
Start Solaris Print Manager as described in the procedure, How to Start Solaris Print Manager.
To delete the printer, follow these steps:
Verify that the printer has been deleted:
# lpstat -p printer-name |
Task |
Description |
For Instructions |
---|---|---|
Delete a printer and remove printer access. |
If a printer needs to be replaced or moved to a different location, you can delete information about the printer from the print-client |
How to Delete a Printer and Remove Printer Access by Using LP Print Commands |
Check the status of printers. |
Use the lpstat command to check the status of all printers or a specific printer. This command allows you to determine which printers are available for use and enables you to examine the characteristics of those printers. | |
Stop the print scheduler. |
If the print scheduler stops accepting print requests, you might need to stop and restart the print scheduler. | |
Restart the print scheduler. |
After you stop the print scheduler, you will need to restart the print scheduler, so the printer can begin accepting requests. | |
Start the print scheduler with options. |
There are two ways to pass options to the print scheduler under the Solaris Management Facility (SMF). You can set options for the duration of a call, or you can set options to remain over a system boot. |
How to Set Print Option Values Only for the Duration of a Call How to Set Printer Option Values That Remain Over a System Reboot |
Use this procedure when you remove a printer from service, and you want to remove the printer access from the print clients. Then, remove the printer information from the print server.
Log in as superuser, lp, or assume an equivalent role on a print client that has access to the printer you want to delete.
On the system that is the print client, delete information about the printer.
# lpadmin -x printer-name |
Deletes the specified printer.
Specifies the name of the printer you want to delete.
Log in as superuser, lp, or assume an equivalent role on the print server.
On the system that is the printer server, stop accepting print requests for the printer.
# 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. For a detailed description, see How to Accept or Reject Print Requests for a Printer.
On the system that is the print server, stop the printer.
# disable printer-name |
This step stops print requests from printing. For a detailed description on how to stop printing, see How to Enable or Disable a Printer.
Move any print requests that are still in the queue to another printer.
For information about how to move print requests to another printer, see How to Move Print Requests to Another Printer.
On the system that is the print server, delete the printer.
# lpadmin -x printer-name |
Verify that the printer information has been deleted:
Confirm that the printer information has been deleted on the print client.
$ lpstat -p printer-name -l |
In the command output, you should receive an error indicating that the printer does not exist.
Confirm that the printer information has been deleted on the print server.
$ lpstat -p printer-name -l |
In the command output, you should receive an error indicating that the printer does not exist.
The following example shows how to delete the printer luna from the print client terra and from the print server jupiter. This example also shows how to delete the print client terra from the print server.
terra# lpadmin -x luna Removed “luna”. terra# lpstat -p luna -l jupiter# lpadmin -x luna Removed “terra”. jupiter# lpstat -p luna -l |
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. You can also examine the characteristics of those printers. You can use the lpstat command to find status information about the LP print service or a specific printer.
If a PPD file was used to create or modify a print queue, the specific PPD file is listed in the lpstat output. If a PPD file was not specified when the print queue was created, the PPD entry in the lpstat output is none.
Log in to any system on the network.
Check the status of printers.
Only the most commonly used options are shown here. For other options, see thelpstat(1) man page.
$ lpstat [-d] [-p] printer-name [-D] [-l] [-t] |
Shows the system's default printer.
Shows if a printer is active or idle, when the printer was enabled or disabled, and whether the printer 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 quotation marks. If you don't specify printer-name, the status of all printers is displayed.
Shows the description of the specified printer-name.
Shows the characteristics of the specified printer-name.
Shows status information about the LP print service, including the status of all printers, such as whether they are active and whether they are accepting print requests.
The following example shows how to display the system's default printer.
$ lpstat -d system default destination: luna |
The following example shows how to display the status of the printer luna.
$ lpstat -p luna printer luna is idle. enabled since Jul 12 11:17 2001. available. |
The following example shows how to display the description of the printers asteroid and luna.
$ lpstat -p "asteroid luna" -D printer asteroid faulted. enabled since Jan 5 11:35 2004. available. unable to print: paper misfeed jam Description: Printer by break room printer luna is idle. enabled since Jan 5 11:36 2004. available. Description: Printer by server room. |
The following example shows how to display the characteristics of the printer luna.
$ lpstat -p luna -l printer luna is idle. enabled since Thu Jul 12 15:02:32 PM PDT Form mounted: Content types: postscript Printer types: PS Description: Connection: direct Interface: /usr/lib/lp/model/standard PPD: none After fault: continue Users allowed: (all) Forms allowed: (none) Banner not required Character sets: (none) Default pitch: Default page size: 80 wide 66 long Default port settings: |
The print scheduler, lpsched, handles print requests on print servers. However, the print scheduler might sometimes stop running on a system, so print requests stop being accepted or printed. The lpadmin command automatically enables the lpsched service when local printers are added to the system and disables it when the last local printer is removed. The following procedures describe how to stop and restart the print scheduler. 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.
Log in as superuser, lp, or assume an equivalent role on the print server.
Determine if the print scheduler is running.
# svcs application/print/server |
You can also use the lpstat -r command to determine if the print scheduler is running.
If the print scheduler is not running, the message scheduler is not running is displayed.
If the print scheduler is running, stop it.
# svcadm disable application/print/server |
You can also use the lpshut command to stop the print scheduler.
Log in as superuser, lp, or assume an equivalent role on the print server.
Determine if the print scheduler is running.
# svcs application/print/server |
You can also use the lpstat -r command to determine if the print scheduler is running.
If the print scheduler is not running, the message scheduler is not running is displayed.
If the print scheduler is not running, start it.
# svcadm enable application/print/server |
You can also use the /usr/lib/lpsched command to start the print scheduler. For more information about the difference between starting the print scheduler by using the /usr/lib/lpsched command or by using the svcadm enable application/print server command, see Starting the Print Scheduler With Options.
There are two ways to pass options to the print scheduler by using SMF:
By modifying option values only for the duration of a call.
Use the /usr/lib/lpsched command with the appropriate options when you only want to pass options to the print scheduler for the duration of a call. Before setting options, see the lpsched(1M) man page for more information about these default values and reasons for changing them.
By maintaining option values over a system reboot, or if the print scheduler is restarted.
The SMF manifest for the print server contains properties that are utilized by the print server start-up script. These property values are passed on to the print scheduler and represent the options, which are set by using the svccfg command.
The properties are as follows:
lpsched/num_filters
lpsched/num_notifiers
lpsched/fd_limit
lpsched/reserved_fds
Any options that are not set with the svccfg command will use the default values that are in the print scheduler. For more information about using the svccfg command, see the svccfg(1M) man page.
Become superuser, lp, or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Set option values.
# /usr/lib/lpsched option value |
Specifies the number of concurrent slow filters that can be run on a print server.
Specifies the number of concurrent notification processes that can run on a print server.
Specifies the file descriptor resource limit for the lpsched process.
Specifies the number of file descriptors that the scheduler reserves for internal communications under heavy load.
This example shows how to set the number of filters to 2. The remaining options will use the defaults that are in the print scheduler.
# /usr/lib/lpsched -f 2 |
To use the default options that are in the print scheduler, run the /usr/lib/lpsched command without any options.
Note that starting the print scheduler by using the /usr/lib/lpsched command does not utilize the values that are set with the svccfg command.
Become superuser, lp, or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Set one or all options.
# svccfg svc:> select svc:/application/print/server svc:/application/print/server> setprop property = value . . . svc:/application/print/server> quit |
For each option that you want to set, repeat the setprop property = value command on a separate line.
Verify that the option has been correctly set by displaying the current values of the print server properties.
# svcprop svc:/application/print/server |
Restart the print scheduler.
If the print scheduler is not running, use the following commands:
# svcadm refresh svc:/application/print/server # svcadm enable svc:/application/print/server |
If the print scheduler is running, use the following commands:
# svcadm refresh svc:/application/print/server # svcadm restart svc:/application/print/server |
To determine if the print scheduler is running, run the svcs application/print/server command.
This example shows how to set the number of filters to 1. This option will remain set over a system reboot, or if you restart the print scheduler.
# svccfg svc:> select svc:/application/print/server svc:/application/print/server> setprop lpsched/num_filters = count: 1 svc:/application/print/server> quit |
This example shows how to set all options.
# svccfg svc:> select svc:/application/print/server svc:/application/print/server> setprop lpsched/num_filters = count: 1 svc:/application/print/server> setprop lpsched/num_notifiers = count: 1 svc:/application/print/server> setprop lpsched/fd_limit = count: 4096 svc:/application/print/server> setprop lpsched/reserved_fds = count: 2 svc:/application/print/server> quit |
The following is a sample script that sets all options.
#!/bin/ksh svccfg <<-EOF select svc:/application/print/server setprop lpsched/num_filters = count: 1 setprop lpsched/num_notifiers = count: 1 setprop lpsched/fd_limit = count: 4096 setprop lpsched/reserved_fds = count: 2 EOF |
Task |
Description |
For Instructions |
---|---|---|
Add a printer description. |
Use the lp command with the-p option to add a printer description. | |
Set a default printer for a system. |
Specify a default printer destination for a user so the user does not need to type the printer name. |
How to Set a System's Default Printer Destination by Using LP Print Commands |
Make banner pages optional. |
Give users a choice to turn off printing of a banner page when they submit a print request. |
How to Make Banner Pages Optional by Using LP Print Commands |
Turn off banner pages. |
Set the -o banner=never variable for a printer you can turn off banner pages under all circumstances. | |
Define a class of printers. |
Group printers in a class by using the lpadmin -c command. Printers can be grouped in the following classes:
|
How to Define a Class of Printers by Using LP Print Commands |
Set fault alters for a printer. |
The print service can notify you when it detects a printer fault. Use the -A option with the lpadmin command to set fault alerts for a printer. |
How to Set Fault Alerts for a Printer by Using LP Print Commands |
Set printer fault recovery. |
You can choose not to receive any fault notification. You can find out about printing faults so that you can correct the problem. Use the -F option with the lpadmin command to define fault recovery options. |
How to Set Printer Fault Recovery by Using LP Print Commands |
Limit user access to a printer. |
To control user access to printers, create allow and deny lists on the print server. |
How to Limit User Access to a Printer by Using LP Print Commands |
Setting definitions for the printers on your network is an ongoing task that lets you provide a more effective print environment for users. For example, you can assign printer descriptions for all your site's printers to help users find where a printer is located. Or, you can define a class of printers to provide the fastest turnaround for print requests. See Specifying a PPD File When Setting Up a Printer by Using LP Print Commands for more information about setting printer definitions by using LP print commands.
Many printer definitions can be set or reset by using Solaris Print Manager. For more information, see Setting Printer Definitions by Using Solaris Print Manager.
The following procedures provide step-by-step instructions on setting or resetting printer definitions by using LP Print Commands. These procedures show how to quickly set or reset printer definitions.
Log in as superuser, lp, or assume an equivalent role on the print server.
# lpadmin -p printer-name -D "comment" |
Specifies the name of the printer for which you are adding a description.
Specifies the characteristics of the printer, such as the location or administrative contact. Enclose characters that the shell might interpret, such as *, ?, \, !, ^, in single quotation marks.
For more information, see the lpadmin(1M) man page.
Verify that the Description information is correct.
# lpstat -p printer-name -l |
The following example shows how to add a printer description for the printer luna.
# lpadmin -p luna -D "Nathans office" |
You can specify a default printer destination for a user so that the user does not 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.
Set a user's default printer destination by setting any of the following:
LPDEST environment variable
PRINTER environment variable
The _default variable in the user's .PRINTERS file
The system's default printer by using the lpadmin -d command or Solaris Print Manager
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 following table 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 LPD-Based 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 |
Log in as superuser, lp, or assume an equivalent role on the system where you want to set a default printer.
Set the system's default printer.
# lpadmin -d [printer-name] |
-d printer-name specifies the 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.
Check the system's default printer.
# lpstat -d |
The following example shows how to set the printer luna as the system's default printer. The printer luna is used as the system's default printer if the LPDEST or the PRINTER environment variables are not set.
# lpadmin -d luna # lpstat -d system default destination: luna |
A banner page identifies who submitted the print request, the print request ID, and when the request was printed. A banner page also has 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. However, printing banner pages uses more paper and might be unnecessary 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, such as 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 Solaris Print Manager. If you give the users a choice, they have to use the -o banner option to turn off banner page printing.
Also, if you don't need or want banner pages, you can turn off banner pages so that they are never printed. You can turn off banner page printing by using the lpadmin command or through Solaris Print Manager.
Table 5–2 Banner Page Printing
Command Used |
Banner Page Printing |
Override? |
---|---|---|
lpadmin -p printer -o banner OR lpadmin -p printer -o banner=always |
Required and printed |
If you are a regular user and use p -o nobanner, the request is printed. However, the nobanner argument is ignored. If you are superuser (root), or another privileged user, 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 |
Not applicable. |
lpadmin -p printer -o banner=never |
Disabled |
No, if you are a regular user. If you are superuser (root), or the lp user, you can override this option to cause the generation of a burst page. |
Log in as superuser, lp, or assume an equivalent role on the print server.
Make banner pages optional.
# lpadmin -p printer-name -o banner=optional |
Specifies the name of the printer for which you are making banner pages optional.
Enables users to specify no banner page when they submit a print request.
Verify that the banner page is optional. The command output contains the line Banner not required.
# lpstat -p printer-name -l |
The following example shows how to make the banner page optional on the printer luna.
# lpadmin -p luna -o banner=optional |
Log in as superuser, lp, or assume an equivalent role on the print server.
Turn off banner printing.
# lpadmin -p printer-name -o banner=never |
Specifies the name of the printer for which you are turning off banner pages.
Disables banner page printing under all circumstances.
Verify that banner printing is turned off.
# lpstat -p printer-name -l |
The command output contains the line Banner not printed.
Submit a print request to the printer to ensure that a banner page does not print.
The following example shows how to disable the printing of banner pages on the printer luna.
# lpadmin -p luna -o banner=never |
The LP 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.
After you set up a printer class, users can then specify that class, rather than individual printers, as the destination for a print request. The first printer in the class that is available to print is used. The result is faster turnaround because printers are kept as busy as possible.
No default printer classes are known to the print service. Printer classes exist only if you define them.
Here are some ways you could define printer classes:
By printer type – For example, a PostScript printer.
By location – For example, a printer located on the 5th floor.
By work group or department – For example, the accounting department.
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, add the high-speed printer to the class before you add a low-speed printer. As a result, the high-speed printer handles as many print requests as possible. The low-speed printer is reserved as a backup printer when the high-speed printer is in use.
Print requests are balanced between printers in a class only for local printers.
Class names, similar to 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 printer classes only if you determine that using them would benefit users on the network.
Log in as superuser, lp, or assume an equivalent role on the print server.
# lpadmin -p printer-name -c printer-class |
Specifies the name of the printer you are adding to a class of printers.
Specifies the name of a class of printers.
Verify that the printers are in a printer class.
# lpstat -c printer-class |
The following example shows how to add the printer luna in the printer class roughdrafts.
# lpadmin -p luna -c roughdrafts |
If you choose, the LP print service can notify you when it detects a printer fault. With the lpadmin -A command or with Solaris Print Manager, you can select any of the following methods to receive printer fault notification:
A message to the terminal on which root is logged in
Electronic mail to root
No notification
However, the lpadmin -A command offers you an additional option of receiving a message specified by the program of your choice. The lpadmin -A command 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 states that the printer has stopped printing and needs to be fixed.
The following table 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 Printer Fault Alerts
Value for -A alert |
Description |
---|---|
'mail [username]' |
Sends the alert message by email to root or lp on the print server, or the specified username, which is a name of a user. |
'write [user-name]' |
Sends the alert message to the root or lp console window on the print server, or to the console window of the specified username, which is a name of a user. The specified user must be logged in to the print server to get the alert message. |
'command' |
Runs the specified command file for each alert. The environment variables and current directory are saved and restored when the file is executed. |
quiet |
Stops alerts until the fault is fixed. Use this valve when you, root or a specified user, receive repeated alerts. |
none |
Does not send any alerts. This value is the default if you don't specify fault alerts for a printer. |
Log in as superuser, lp, or assume an equivalent role on the print server.
Set fault alerts for a printer.
# lpadmin -p printer-name -A alert [-W minutes] |
Specifies the name of the printer for which you are specifying an alert for printer faults.
Specifies what kind of alert occurs when the printer faults. Some valid values are mail, write, and quiet.
Specifies how often, in minutes, the fault alert occurs. If you don't specify this option, the alert is sent one time.
Verify that the fault alert has been sent properly.
# lpstat -p printer-name -l |
The following example shows how to set up the printer mars to send fault alerts by email to a user named joe. A reminder is sent every 5 minutes.
# lpadmin -p mars -A 'mail joe' -W 5 |
The following example shows how to set up the printer venus to send fault alerts to the console window. A reminder i sent every 10 minutes.
# lpadmin -p venus -A write -W 10 |
The following example shows how to stop fault alerts for the printer mercury.
# lpadmin -p mercury -A none |
The following example shows how to stop fault alerts until the printer venus has been fixed.
# lpadmin -p venus -A quiet |
If you choose not to send any fault notification, you can still find out about printer faults so that 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 instruct you 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. 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:
Starts printing from the beginning
Continues printing from the top of the page where printing stopped
After you enable the printer, continues printing from the top of the page where the printing stopped
The LP print service requires a separate print filter to continue printing from the top of a page where the printing stopped. This print filter records the control sequences set by the default print filters. The printer uses these control sequences to track page boundaries. You will be notified by the LP 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 following table lists the fault recovery values that you can set for a printer by using the lpadmin -F command.
Table 5–4 Values for Printer Fault Recovery
Log in as superuser, lp, or assume an equivalent role on the print server.
Set up fault recovery for the printer.
# lpadmin -p printer-name -F recovery-options |
Specifies the name of the printer for which you are specifying fault recovery.
Specifies one of the three valid recovery options: beginning, continue, or wait.
For more information, see the lpadmin(1M) man page.
Verify that printer fault recovery has been set up properly.
# lpstat -p printer-name -l |
The following example shows how to set up the printer luna to continue printing at the top of the page where printing stopped.
# lpadmin -p luna -F continue |
You can control which users can access some printers 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 create allow and deny lists by using the lpadmin -u command on the print server. Solaris Print Manager enables you to create only allow lists. If you create neither list, a printer is available to all users who can access the printer.
An allow list contains the names of users who are 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 explained in the following table:
Allow and Deny List Rule |
User Consequence |
---|---|
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 user on the server, are denied access to the printer. |
Make any entry in the allow list. |
The deny list is ignored. Only 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 responsible for controlling access to the printer, allow and deny lists can only be created on the print server. If you create allow and deny lists, the print server will exclusively control user access to printers.
The following table lists the values that you can add to an allow list or a 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 |
Log in as superuser, lp, or assume an equivalent role on the print server.
Allow or deny users access to a printer.
# lpadmin -p printer-name -u allow:user-list [deny:user-list] |
Specifies the name of the printer to which the allow or deny access list applies.
Specifies the user names to be added to the allow 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 quotation marks.
Specifies 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 quotation marks.
The specified users are added to the allow or deny list for the printer in one of the following files on the print server:
If you specify none as the value for user-list in the allow list, the following files are not created on the print server:
Verify that information is correct under the Users allowed or the Users denied heading in the following command output:
# lpstat -p printer-name -l |
The following example shows how to allow only the users nathan and george access to the printer luna.
# lpadmin -p luna -u allow:nathan,george |
The following example shows how to deny the users nathan and george access to the printer asteroid.
# lpadmin -p asteroid -u deny:"nathan george" |
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 log in to the print server to move, hold, resume, or change the priorities of print requests with LP print service commands. These actions can help you keep printing services operating smoothly.
The following table lists the values for changing the priority of a print request by using 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 the request 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. The request is printed according to its priority and placement in the queue. If you place on hold a print job that is already printing, resume places the print request at the head of the queue so that 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 the request on hold to allow the next request to print immediately. |
Log in on any system on the network.
Check the status of printers and print requests.
Only the most commonly used options are shown here. For other valid options, see the lpstat(1) man page.
$ lpstat -o [list] | -u [user-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.
To 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 quotation marks.
If you don't specify list, the status of print requests sent to all printers is displayed.
Shows the status of print requests for a specific user. user-list can be one or more user names.
To 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 quotation marks.
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 following information:
Request ID
User
Output size in bytes
Date and time of the request,
Information about the request, such as “being filtered.”
The following example shows that user fred has one print request queued on the printer luna.
$ lpstat luna-1 fred 1261 Jul 12 17:34 |
The following example shows that the user paul currently has no print requests in queue.
$ lpstat -u paul |
The following example shows that two print requests are queued on the printer moon.
$ lpstat -o moon moon-78 root 1024 Jul 14 09:07 moon-79 root 1024 Jul 14 09:08 |
The enable and disable 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 the queue. However, requests are still added to the queue. You must set the printer to reject print requests so that requests are not added to the queue. For information about rejecting print requests, see Accepting or Rejecting Print Requests.
A printer is enabled to print and accepts print requests when the printer is added by 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 following figure shows the point at which the processing of print requests is interrupted when a printer is disabled.
Log in as superuser, lp, or assume an equivalent role on the print server.
# disable [-c | -W] [-r "reason"] printer-name |
Cancels the current job, then disables the printer. The current job is saved to reprint when the printer is enabled.
Cancels the current job, then disables the printer. The current job is not printed later.
Waits until the current job is finished before disabling the printer.
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 by using the lpstat -p command.
Specifies the name of the printer that will stop printing print requests.
You cannot enable or disable classes of printers. Only individual printers can be enabled or disabled.
Start printing print requests.
# enable printer-name |
Verify that the printer is enabled.
# lpstat -p printer-name |
The following example shows how to stop the current job on the printer luna, save the job to print later, and provide a reason why the printer has stopped printing print requests.
# disable -r "changing the form" luna |
The following example shows how to start printing print requests on the printer luna.
# enable luna printer "luna" enabled |
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. However, 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. The following table compares the functions of the accept, reject, enable, and disable commands.
Table 5–7 Functions of accept, reject, enable, and disable Print Commands
Command |
Function |
---|---|
accept |
Accepts print requests that are sent to the print queue. |
disable |
Stops printing requests that are currently in the print queue. |
enable |
Prints the requests that are in the print queue. |
reject |
Rejects print requests that are sent to the print queue. |
If a print request is rejected, the LP print service writes or mails a message to the user who submitted the request. the message states 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 a user's system when a user tries to check the printer's queue. The following figure shows the point at which the processing of print requests is interrupted when a print queue rejects print requests.
Log in as superuser, lp, or assume an equivalent role on the print server.
Stop accepting print requests for the printer.
# reject [-r "reason"] printer-name |
Provides users with 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 by using the lpstat -p command.
Specifies the name of the printer that will stop accepting print requests.
The queued requests continue printing as long as the printer is enabled. For instructions on disabling a printer so that it stops printing, see How to Enable or Disable a Printer.
Start accepting print requests for the printer.
# accept printer-name |
Check that the status of the printer to see whether it is accepting or rejecting print requests.
$ lpstat -p printer-name |
The following example shows how to stop the printer luna from accepting print requests.
# reject -r "luna is down for repairs" luna destination "luna" will no longer accept requests |
The following example shows how to set the printer luna to accept print requests.
# accept luna destination "luna" now accepting requests |
You can use the cancel command to cancel print requests in printer queues or to cancel jobs that are printing.
Three are three ways to use the cancel command:
Cancel requests by request identification number (request ID)
Cancel requests from a specific user on all printers or specific printers
Cancel the job currently printing
When you use the cancel command, a message tells you the request or requests are canceled, and the next request in queue is being printed.
You can cancel a print request only under the following conditions:
You are the user who submitted the request and you are logged in on the system from which you submitted the request.
You are the user who submitted the request on any client system and the print server has the “user-equivalence” option configured for the printer in its /etc/printers.conf file.
You are logged in as superuser, lp, or have assumed an equivalent role on the print server.
To cancel a specific request, you need to know its request ID. The request ID contains 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.
If you are going to cancel the print requests of other users, then become superuser, lp, or assume an equivalent role.
Determine the request IDs of the print requests to cancel.
# lpstat |
For more details, see How to Check the Status of Print Requests.
Cancel the print request.
# cancel request-id | printer-name |
Specifies the 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 quotation marks.
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 quotation marks.
Verify that the print requests are canceled.
$ lpstat -o printer-name |
The following example shows how to cancel the luna-3 and luna-4 print requests.
$ cancel luna-3 luna-4 request "luna-3" cancelled request "luna-4" cancelled |
The following example shows how to cancel the print request that is currently printing on the printer luna.
# cancel luna request "luna-9" cancelled |
(Optional) Become superuser, lp, or assume an equivalent role if you are going to cancel the print requests of other users.
Cancel a print request from a specific user.
$ cancel -u user-list [printer-name] |
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 quotation marks
Specifies the printer for which you want to cancel the print requests for a specified user.
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 quotation marks.
If you don't specify the printer-name, the print requests for the specified user is canceled on all printers.
The following example shows how to cancel all the print requests submitted by the user george on the printer luna.
# cancel -u george luna request "luna-23" cancelled |
The following example shows how to cancel all the print requests submitted by the user george on all printers.
# cancel -u george request "asteroid-3" cancelled request "luna-8" cancelled |
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. Then, move or cancel any requests that are currently queued to the printer. You can use the lpmove 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 a specific file content type or form, that cannot be met by the newly specified printer cannot be moved. These print requests must be canceled.
To move all print requests from one printer to another printer, you do not need to know the request IDs. However, first determine how many print requests are affected before you move them.
Log in as superuser, lp, or assume an equivalent role on the print server.
(Optional) Determine if the request IDs of the print requests on the original printer.
# lpstat -o printer-name1 |
(Optional) Check to see if the destination printer is accepting print requests.
# lpstat -a printer-name2 |
-a printer-name2 reports whether print destinations are accepting requests.
Move all the print requests from the original printer to the destination printer.
# lpmove printer-name1 printer-name2 |
Specifies the name of the printer from which all print requests will be moved.
Specifies the name of the printer to which all print requests will be moved.
For more information, see the lpmove(1M) man page.
If some requests cannot be printed on the destination printer, the requests are left in the original printer's queue. By using request IDs, you can also move specific print requests to another printer by using the lpmove command.
(Optional) 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 |
Check for any remaining print requests in the original printer's queue.
# lpstat -o printer-name1 |
Ensure that all specified print requests were moved to the destination printer's queue.
# lpstat -o printer-name2 |
The following example shows how to move print requests from the printer luna to the printer terra. Then, the original printer, luna, is instructed to resume accepting print requests.
# lpmove luna terra # accept luna |
After a user has submitted a print request, you can change its priority in the print server's queue by doing any of the following:
Putting any print request on hold if it has not finished printing. Putting a request on hold stops the request, if it is currently printing, and keeps it from printing until you resume printing it. Other print requests go ahead of the on-hold request.
Moving any print request to the head of the queue, where it will become the next job eligible for printing. If you want a job to start printing immediately, you can interrupt the job that is currently printing by putting it on hold.
Changing the priority of a job still waiting to be printed or moving the job in the queue. Doing so will move the job ahead of lower priority requests and behind other requests that are the same priority or higher priority.
Log in as superuser, lp, or assume an equivalent role on the print server that is holding the print request.
Determine the request IDs of the print requests whose priority you want to change.
# lpstat |
For more information, see How to Check the Status of Print Requests.
Change the priority of a print request.
# lp -i request-id -H change-priority |
Specifies the 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 quotation marks.
Specifies one of the three ways to change the priority of a print request: hold, resume, immediate.
For detailed information about valid values for change-priority, see Table 5–6.
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.
The following example shows how to change a print request with the request ID asteroid-79, to priority level 1.
# lp -i asteroid-79 -q 1 |
Task |
Description |
For Instructions |
---|---|---|
Set definitions for print queues that use PPD files. |
Modify the default values that are defined in PPD files that are associated with print queues by using the lpadmin command with the -o option. |
How to Set Default Values for Print Queues That Are Associated With PPD Files |
Determine if a PPD file was used to create a print queue. |
Use the lpstat command to determine if a PPD file was used to create a print queue, or if a PPD file is associated with a print queue. |
Determining Whether a PPD File Is Associated With a Print Queue |
During the process of setting up a print queue, a PPD file that describes the print queue's capabilities can be associated with that print queue. Often, the default values that are described in the PPD file do not match the preferred settings for your site. For example, you might want the duplex feature always turned on, or you might want to always print to A4 sized paper. To modify these default values, you can edit the PPD file directly. However, the easiest and fastest method is to make the changes by using the lpadmin command with the -o option.
Some common PPD file values include:
PageSize
Examples of available choices include:
Letter
Legal
A4
B5
Env10
InputSlot
Examples of available choices include:
Tray1
Tray2
Tray3
Manual
Duplex
Examples of available choices include:
None
DuplexNoTumble
DuplexTumble
This procedure shows how to set default values for a print queue that uses PPD files to describe its capabilities.
Check the PPD file first to determine which values can be overridden. To view the PPD file, use the more or less command, or open the file in a text editor.
For example:
% more /etc/lp/ppd/print-queue.ppd |
Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Set the desired option.
# lpadmin -p print-queue -o key=value |
Specifies the printer name or print queue where the value is to be changed.
Specifies the options for adjusting printer capabilities, adjusting printer port characteristics, configuring network printers, and controlling the use of banner.
Specifies the key/value pair for the option.
The set of key/value pairs that can be used for a particular printer depends on the content of the PPD file that is associated with the print queue.
For example, to set the duplex feature, type:
# lpadmin -p print-queue -o Duplex=DuplexNoTumble |
To change the input tray setting, type:
# lpadmin -p print-queue -o InputSlot=Tray2 |
You can set the default value this way for any PPD file/foomatic option.
Verify that the option was set to the correct value by checking the print queue's capabilities.
# lpstat -p print-queue -l |
# lpadmin -p hp4550 -o Media=A4 -o InputSlot=Tray2 # lpadmin -p hp4550 -o PageSize=A4 # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: PageSize=A4, Media=A4, InputSlot=Tray2, \ dest=192.168.245.62:9100, protocol=tcp uname -a SunOS shuttle 5.11 snv_52 i86pc i386 i86pc # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: dest=192.168.245.62:9100, protocol=tcp |
If a PPD file was used during the creation of a print queue, the PPD file that the specified queue is configured to use is listed in the lpstat command output. If you do not specify a PPD file when creating a new print queue, the lpstat command continues to display the same output as it did previously. For an example of the lpstat command output that shows the use of PPD files, see How to Check the Status of Printers.
You can use Solaris Print Manager to modify queues that were created without the use of PPD files. In such cases, Solaris Print Manager uses the previous printer definitions, which do not include the printer make, printer model, and printer driver definitions.
For tasks that are associated with expanded printer support, seeSetting Up Printers That are Associated With PPD Files.
In this example, the lpstat command output indicates that the print queue was configured by using the PPD file, Mitsubishi-CP50_Color_Printer-cp50.ppd.gz.
# lpstat -l -p paper printer paper is idle. enabled since Tue 30 Mar 2004 01:48:38 PM PST available. Form mounted: Content types: any Printer types: unknown Description: Connection: direct Interface: /usr/lib/lp/model/standard_foomatic PPD: /path/Mitsubishi-CP50_Color_Printer-cp50.ppd.gz After fault: continue Users allowed: (all) Forms allowed: (none) Banner required Character sets: (none) Default pitch: Default page size: Default port settings# lpstat l p <queue> |