Provided by: lprng_3.8.A-2.1_i386 bug


       lpc - line printer control program


       lpc  [  -A  ]  [  -a  ]  [  -Ddebugopts  ] [ -Pprinter ] [ -Sserver ] [
       -Uusername ] [ -V ] [ command [ argument ... ] ]


       line   printer   system.    For   each   line   printer  configured  in
       //etc/printcap or the printcaps specified  in  the  configuration  file
       //etc/lprng/lpd.conf (see lpd.conf(5)), lpc may be used to:

       ·  disable or enable a single or all printer,

       ·  disable  or  enable  a  single  printer’s  or all printer’s spooling

       ·  move jobs to the top a queue

       ·  find the status of printers, and their  associated  spooling  queues
          and printer daemons,

       ·  start  and  stop  printer  servers  for  a queue with multiple print

       ·  hold and release a specific job in a printer queue,

       ·  redirect printing to another printer,

       ·  restart a printer job after having solved printer problems  and  let
          it print from the beginning,

       ·  reprint a job

       Without  any  arguments, lpc will prompt for commands from the standard
       a  command  and  the  remaining arguments as parameters to the command.
       Permission to use spool queue control commands  is  determined  by  the
       printer permissions file (See FILES).


       The  operation of each spool queue is controlled by a spoolcontrol file
       which has a set of keyword options and values.  (Other  print  spoolers
       have  used  permissions  bits  of  directories  and  files  for similar
       purposes).  In addition, each  job  in  the  spool  queue  can  have  a
       holdfile  which  contains detailed information on how the spooler is to
       treat the particular job.  The server  will  update  these  files  with
       status  and other information as the job is processed.  The lpc command
       operates by sending requests to the lpd server process  to  update  the
       information  in  these  files  and  to signal server processes that the
       information has been updated.


       -A   Use authentication specified by the value of the AUTH  environment

       -a   Alias for -Pall.

            Printer  spool  queue  to operate on.  if no name is given, the -P
            option,  the  printer  selected  by  the  value  of  the   PRINTER
            environment variable, or the first entry in the printcap file will
            be used.  When all printers are selected,  the  LPC  command  will
            first  attempt to find the printcap entry for printer ‘‘all’’; the
            all printcap field value will be a list of  printers  to  control.
            If  there  is  no  printcap  entry,  then  the request is directly
            forwarded to the default LPD host, which will do a lookup for  all
            of  the  available printers.  By specifying ‘‘all@host’’, the user
            can control all printers on a given host.

            Send commands to this server, rather than the one specified by the
            -Pprinter"  or  printcap  entry.  This allows you to use a default
            printcap entry  for  authentication  information  or  other  setup
            information, but direct queries to a specific server.

       -V   Print program version information

            Set  the user name for the request.  This option is available only
            to user root or to the userids listed  in  the  allow_user_setting
            configuration option.

            separated list of debugging settings. These settings take  one  of
            value.  The form -D= will display a list of debugging options.


       The following is the alphabetical list  of  recognized  commands.   The
       jobcontrol  or  holdfile  fields  effective  are  listed as part of the

              Help.  Also, any unrecognized input produces a help listing.

       active [pr@[host]]
              makes a connection to the LPD server for the specified  printer.
              Closes  the  connection  after  making  it.   This is useful for
              checking to see if a non-LPRng server is active.

       abort { all | printer* }
              Kill the active job and disables  unspooling.   The  active  job
              will not be deleted from the queue.
              Action:   kills  server  process,  updates  spool  control  file
              printing_disabled field.

       class {all | printer } (off | classlist | X=globmatch)
              Controls the class of jobs currently  being  printed.   The  off
              option  removes any class restrictions.  The classlist option is
              a list of classes; for example A,B,C would release classes A, B,
              and  C  for  printing.   The  X=globmatch  form performs a match
              against a control file entry starting with the indicated capital
              letter.   For example,  J=*form1* would allow jobs which had the
              string form1 in their job title to be printed.

              Lists the default queue for the LPC program.

              Lists default values for the configuration information.

       debug j all | printer } [string | off ]
              Set the debugging string for the specified printer.  This  is  a
              diagnostic  aid  and  should  be used with caution; refer to the
              reference manual for details of the debugging string format.  In
              general, you can use:
              INTEGER - the integer number sets the general debugging level
              - sets a debugging variable to a specified value
              keyword - sets a debugging flag
              Action: updates spool control file debug field.

       disable { all | printer }
              Disable spooling to the specified spool queues.  See enable.
              Action: updates spool control file printing_disabled field.

       down {all | printer }
              Disable  both  queuing  and  printing  for  all  printers or the
              selected printer.  See up.
              Action:  updates  spool  control  file   printing_disabled   and
              spooling_disabled fields.

       enable { all | printer }
              Enable spooling for all printers or the selected printer.
              Action: updates spool control file spooling_disabled field.

       exit or quit
              terminate LPC program

              Print a short help message.

       hold printer { jobid }
              Holds the specified printer job (or jobs) in the queue.  The job
              will not be printed even if spooling and printing is enabled. It
              must  be released with the release command.  The holdall command
              or :ah: printcap flag can enable automatic  holding  of  spooled
              Action:  updates  job holdfile hold field with time that job was
              held.  A 0 value release job for printing.

       holdall { all | printer ... }
              Turn on automatic job holding of new jobs.   New  jobs  will  be
              marked  as  held,  and  held  until  released  with  the release
              command.  This will be done until holdall is turned off with the
              noholdall  command.  The :ah: printcap flag can enable automatic
              holding as well.
              Action: updates spool control file holdall field.

       kill { all | printer ... }
              Do an abort command followed by a  start  command.   This  is  a
              quick way to kill off a server that has problems.  Note that due
              to race conditions and delays, that the start command may not be
              effective this action should be monitored to ensure that the job

       client { all | printer ... }
              Show the LPRng client configuration and printcap information  on
              the local host.  This is an extremely useful diagnostic tool.

       lpd [printer@[host]]
              determines if LPD daemon process on the print server is running,
              and gets the PID.  This is handy to determine if the LPD  daemon
              was killed or aborted due to abnormal conditions.

       lpq printer [options]
              Run lpq from inside the lpc program.

       lprm printer jobid [jobid]*
              Run  lprm  from  inside  the  lpc  program.  Not all options are
              supported - this form requires the printer name and jobid to  be
              specified explicitly.

       move printer jobid  destinationPrinter
              Send  the  specified  jobs to the destination printer and remove
              them from the printer queue.
              Action: updates the job holdfile move field with the destination
              and starts a server process to do the job transfer.

       msg printer message text
              Update  the  status  message  for the printer.  An empty message
              will remove the status message.

       noholdall { all | printer* }
              Turn off automatic job holding.  See holdall command.

       quit or exit
              terminate LPC program

       redirect [printer [destinationPrinter | off ]]
              redirect the jobs in the printer queue  to  another  printer  or
              turn redirection off.
              Action: updates spool control file redirect field.

       redo [printer [jobid]]
              Reprint the selected job.

       release [printer [jobid]]
              Releases the selected job for printing.

       reread [ printer [@host] ]
              Sends  a request to the LPD server for the printer to reread the
              configuration and printcap information.  This is  equivalent  to
              using kill -HUP serverpid, but can be done for servers on remote

       server { all | printer }
              Shows the printcap entries for the printer or  all  printers  as
              the LPD server would use them.

       start { all | printer }
              Start  the printer.  This is useful when some abnormal condition
              causes the server to terminate unexpectedly leaving jobs in  the
              queue.   Lpq  will  report  that there is no daemon present when
              this condition occurs.

       status { all | printer }
              Display the status of daemons and queues on the local machine.

       stop { all | printer }
              Disable any further unspooling after the current job  completes.

       topq printer [ jobid ]
              Place the selected jobs at the top of the printer queue.

       up {all | printer ...}
              Enables  queuing and printing for the specified or all printers.


       The LPQ command displays a job identifier for each job,  which  can  be
       used  in  LPC  commands  to  identify  a specific job.  In the commands
       descriptions above, the jobid can be a user name, a job number,  a  job
       identifier, or a glob pattern.  The glob pattern is matched against the
       job identifier.  In command which have an optional jobid,  if  none  is
       specified then the first printable job in the queue is acted on.


       //etc/lprng/lpd.conf                         LPRng configuration file
       ${HOME}/.printcap                            user printer description file
       //etc/printcap                               printer description file
       //etc/lprng/lpd.perms                        permissions
       /var/spool/lpd                               spool directories
       /var/spool/lpd/QUEUE/control                 queue control
       /var/spool/lpd/QUEUE/acct                    accounting file
       /var/spool/lpd/QUEUE/status                  status file


       lpd.conf(5), lpd(8), checkpc(8), lpr(1), lpq(1), lprm(1),  printcap(5),


       Most of the diagnostics are self explanatory.
       If you are puzzled over the exact cause of failure,
       The debugging information will
       help you to pinpoint the exact cause of failure.


       LPRng  is  a enhanced printer spooler system with functionality similar


       Patrick Powell <>.