System Administration Guide, Volume 2

How to Troubleshoot an Idle (Hung) Printer

This task includes a number of procedures to use when a printer appears idle but it should not be. It makes sense to try the procedures in order, but the order is not mandatory.

To check that the printer is ready to print:

  1. Display printer status information.


    # lpstat -p printer-name 
    

    The information displayed shows you whether the printer is idle or active, enabled or disabled, or available or not accepting print requests. If everything looks all right, continue with other procedures in this section. If you cannot run the lpstat command, see "How to Unhang the LP Print Service".

  2. If the printer is not available (not accepting requests), allow the printer to accept requests.


    # accept printer-name 
    

    The printer begins to accept requests into its print queue.

  3. If the printer is disabled, re-enable it.


    # enable printer-name 
    

    This command re-enables the printer so that it will act on the requests in its queue.

To check for print filtering:

Check for print filtering by using the lpstat -o command.


$ lpstat -o luna
luna-10           fred         1261   Mar 12 17:34 being filtered
luna-11           iggy         1261   Mar 12 17:36 on terra
luna-12           jack         1261   Mar 12 17:39 on terra
$

See if the first waiting request is being filtered. If the output looks like the above example, the file is being filtered; the printer is not hung, it just is taking a while to process the request.

To resume printing after a printer fault:

  1. Look for a message about a printer fault and try to correct the fault if there is one.

    Depending on how printer fault alerts have been specified, messages may be sent to root by email or written to a terminal on which root is logged in.

  2. Re-enable the printer.


    # enable printer-name 
    

    If a request was blocked by a printer fault, this command will force a retry. If this command does not work, continue with other procedures in this section.

To send print requests to a remote printer when they back up in the local queue:

  1. On the print client, stop further queuing of print requests to the print server.


    # reject printer-name 
    
  2. On the print client, send an "are you there?" request to the print server.


    print_client# ping print_server
    print_server is alive

    If you receive the message print_server not available, you may have a network problem.

  3. After you fix the above problem, allow new print requests to be queued.


    # accept printer-name 
    
  4. If necessary, re-enable the printer.


    # enable printer-name 
    

To free print requests from a print client that back up in the print server queue:

  1. On the print server, stop further queuing of print requests from any print client to the print server.


    # reject printer-name 
    
  2. Display the lpsched log file.


    # more /var/lp/logs/lpsched
    

    The information displayed may help you pinpoint what is preventing the print requests from the print client to the print server from being printed.

  3. After you fix the problem, allow new print requests to be queued.


    # accept printer-name
    
  4. If necessary, re-enable the printer on the print server.


    # enable printer-name