lpc - line printer control program
SYNOPSIS
lpc [ -A ] [ -a ] [ -Ddebugopts ] [ -Pprinter ] [ -Sserver
] [ -Uusername ] [ -V ] [ command [ argument ... ] ]
DESCRIPTION
Lpc is used by the system administrator to control the
operation of the line printer system. For each line
printer configured in /etc/printcap or the printcaps spec
ified in the configuration file 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 queue,
· move jobs to the top a queue
· find the status of printers, and their associated
spooling queues and printer dameons,
· start and stop printer servers for a queue with multi
ple print servers,
· hold and release a specific job in a printer queue,
· redirect printing to another printer,
· restart a printer job after having solved printer prob
lems and let it print from the beginning,
· reprint a job
Without any arguments, lpc will prompt for commands from
the standard input. If arguments are supplied, lpc inter
prets the first argument as 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).
OPERATION
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 addi
tion, 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 pro
cessed. The lpc command operates by sending requests to
the lpd server process to update the information in these
has been updated.
OPTIONS
-A Use authentication specified by the value of the AUTH
environment variable.
-a Alias for -Pall.
-Pprinter
Printer spool queue to operate on. if no name is
given, the -P option, the printer selected by the
value of the PRINTER enviroment 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.
-Sserver
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 informa
tion, but direct queries to a specific server.
-V Print program version information
-Uusername
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.
-Ddebugopts
Debugging is controlled using the -D option. This
accepts a comma-separated list of debugging settings.
These settings take one of two forms: facility=value
, or value to set an overall default value. The form
-D= will display a list of debugging options.
COMMANDS
The following is the alphabetical list of recognized com
mands. The jobcontrol or holdfile fields effective are
listed as part of the command.
?
Help. Also, any unrecognized input produces a help
listing.
makes a connection to the LPD server for the speci
fied 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 print
ing. 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.
defaultq
Lists the default queue for the LPC program.
defaults
Lists default values for the configuration informa
tion.
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
keyword=value
- 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_dis
abled field.
down {all | printer }
Disable both queuing and printing for all printers
or the selected printer. See up.
Action: updates spool control file printing_dis
abled and spooling_disabled fields.
Enable spooling for all printers or the selected
printer.
Action: updates spool control file spooling_dis
abled field.
exit or quit
terminate LPC program
help
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 spool
ing and printing is enabled. It must be released
with the relase command. The holdall command or
:ah: printcap flag can enable automatic holding of
spooled jobs.
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 auto
matic 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 restarts.
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.
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 com
mand.
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 informa
tion. This is equivalent to using kill -HUP
serverpid, but can be done for servers on remote
hosts.
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 abnor
mal condition causes the server to terminate unex
pectedly 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
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. Privileged.
JOBIDS
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.
FILES
The files used by LPRng are set by values in the printer
configuration file. The following are a commonly used set
of default values.
/etc/lpd.conf LPRng configuration file
/etc/printcap printer description file
/etc/lpd.perms printer permissions
/var/spool/printer* spool directories
/var/spool/printer*/printer lock file for queue control
/var/spool/printer*/control.printer queue control
/var/spool/printer*/active.printer active job
/var/spool/printer*/log.printer log file
SEE ALSO
lpd.conf(5), lpd(8), checkpc(8), lpr(1), lpq(1), lprm(1),
printcap(5), lpd.perms(5), pr(1).
DIAGNOSTICS
Most of the diagnostics are self explanatory.
If you are puzzled over the exact cause of failure,
set the debugging level on (-D5) and run again.
The debugging information will
help you to pinpoint the exact cause of failure.
HISTORY
LPRng is a enhanced printer spooler system with function
ality similar to the Berkeley LPR software. The LPRng
mailing list is lprng@lprng.com; subscribe by sending mail
to lprng-request@lprng.com with the word subscribe in the
body. The software is available from
AUTHOR
Patrick Powell <papowell@lprng.com>.
Man(1) output converted with
man2html