lpd(8)lpd(8)Namelpd - line printer daemon
Syntax
/usr/lib/lpd [ -l ] [ -L logfile ] [ portnumber ]
Description
The line printer daemon uses the system calls and to receive requests
to print files in the print queue, transfer files to the spooling area,
display the queue, and remove jobs from the queue.
The line printer daemon is invoked by the command file when the system
goes multi-user (normally at system start up). The daemon looks at the
file to find out about the capabilities of existing printers, and
prints any files that were not printed when the system last stopped
operating.
The Internet port number used to rendezvous with other processes is
normally obtained with but can be changed by using the portnumber argu‐
ment.
Access to the facilities provided by the daemon is controlled by only
allowing requests from the machines listed in the or files. The file
is described on the reference page. The file is a list of names con‐
sisting of one host machine name per line. An * character at the start
of any line in allows print requests from all systems. The machine
names listed in the and files may optionally contain the local BIND
domain name. For more information on BIND, see the Guide to the
BIND/Hesiod Service.
You can also control access to the daemon by specifying the rs capabil‐
ity for a particular printer in the file. This restricts the printer
users to those with accounts on the machine which the printer is con‐
nected to.
The file lock in each spool directory is used to prevent multiple dae‐
mons from becoming active simultaneously, and to store information
about the daemon process for and
After the daemon has successfully set the lock, it scans the directory
for command files with names beginning with cf . These files specify
names of files which are to be printed and parameters affecting how the
files are printed. Each line in a command file begins with a key char‐
acter to specify what to do with the remainder of the line. The key
characters and their meanings are shown below. They are listed in the
order that they would appear in a command file.
If a file is to be printed but can not be opened, a message will be
placed in the logfile (by default, the system console).
The daemon uses to provide exclusive access to the lock file. The lock
is automatically removed by the kernel when a process terminates for
any reason. The lock file contains two lines. The first is the
process id of the daemon and the second is the control file name of the
current job being printed. The second line is updated for use by and
The key characters in the command file and their meanings are as fol‐
lows:
Hhost Host Name. Name of the machine where was invoked.
Puser Person. Login name of the person who invoked This is used to
verify ownership by
Jjob Job Name. String to be used for the job name on the banner
page.
Cclass Classification. String to be used for the classification
line on the banner page.
Luser Literal. The line contains identification information from
the password file and causes the banner page to be printed.
Inum Indent. The number of characters by which the output is
indented (in ASCII).
Muser Send mail to the specified user when the current print job
completes.
1font Troff Font R. Name of the font file to use instead of the
default.
2font Troff Font I. Name of the font file to use instead of the
default.
3font Troff Font B. Name of the font file to use instead of the
default.
4font Troff Font S. Name of the font file to use instead of the
default.
Wnum Width. Changes the page width (in characters) used by and
the text filters.
Znum Length. Changes the page length (in lines) used by and the
text filters.
Ddata_type
Data type of the job.
(PostScript (TM) printers only.)
<input_tray
Selects the input tray that supplies paper for the print job.
(PostScript (TM) printers only.)
>output_tray
Selects the output tray where the printed paper is deposited.
(PostScript (TM) printers only.)
Oorientation
Specifies the orientation of the printed output on the page.
(PostScript (TM) printers only.)
Fpage_size
Specifies the size of the pages being printed.
(PostScript (TM) printers only.)
Ssheet_size
Specifies the physical size of the sheets being printed.
(PostScript (TM) printers only.)
Emessage Specifies what happens to messages generated when processing
the print job.
(PostScript (TM) printers only.)
Xnum Specifies the number of times each page is printed.
(PostScript (TM) printers only.)
Anum Specifies the first page to be printed for the job.
(PostScript (TM) printers only.)
Bnum Specifies the last page to be printed for the job.
(PostScript (TM) printers only.)
Gnum Specifies the number of pages to be printed on a single phys‐
ical sheet.
(PostScript (TM) printers only.)
zfilename Layup definition file which alters the appearance of pages
(margins, borders, etc).
(PostScript (TM) printers only.)
Ksides Specifies whether the job should be printed on both sides to
the physical sheet, and whether the pages should be rotated
by 180 degrees.
(PostScript (TM) printers only.)
Ttitle Title. String to be used as the title for
ffilename Formatted File. Name of a file to print which is already
formatted.
pfilename Name of a file to print using as a filter.
lfilename Like but passes control characters and does not make page
breaks.
tfilename Troff File. The file contains
nfilename Ditroff File. The file contains output (device independent
dfilename DVI File. The file contains TeX output (DVI format from
Stanford).
gfilename Graph File. The file contains data produced by
vfilename The file contains a raster image.
cfilename Cifplot File. The file contains data produced by cifplot.
rfilename The file contains text data with Fortran carriage control
characters.
xfilename Do not interpret any control characters in the file.
Ufilename Unlink. Name of file to remove upon completion of printing.
Nname File name. The name of the file which is being printed, or a
blank for the standard input (when is invoked in a pipeline).
PostScript (TM) Printers With Specialised Support
To use the features of the PostScript (TM) printers for which spe‐
cialised support is available, you must ensure that :ps=LPS: is set in
the appropriate entry in the file.
For PostScript (TM) printers, the line printer daemon assembles the
PostScript (TM) from the users data files and PostScript (TM) device
control modules. The device control modules access device features and
manipulate the appropriate printer parameters. Device control modules
(the Dl capability in are provided in an archive file, refer to Device
control modules access printer specific features of PostScript (TM) and
are therefore device dependent.
The data type of the spooled files is given by the Da capability in the
file. The data type can be overridden by the D key character in the
command file.
The support for PostScript (TM) printers introduces a new method of
specifying the type of the data to be printed using the -D option of or
the Da capability in The mechanism for invoking these translators needs
to interact with the existing mechanism for invoking filters for non-
text files, so that the existing mechanism can be used if required.
The mechanism has the following features:
The new translators are invoked via the shell program which is
passed the data type as one of its parameters.
Any old style filter arguments (for example, -t and -x) take
precedence over -D (even though will accept the combination).
This means that the if capability in must not be specified if
data types are being used.
Filter Capabilities
Two of the capabilities that affect the behaviour of require a more
detailed explanation than that given on the reference page.
ct Connection type. This entry in the file determines the type of con‐
nection. The following table shows the valid choices for ct, and
the mandatory and optional entries to go with each choice.
───────────────────────────────────────────────
ct= Mandatory Entries Optional Entries
───────────────────────────────────────────────
®dev lp of
lat lp, ts, op, os of
remote rp, rm
network of
───────────────────────────────────────────────
Remote means a printer that is connected to another system running a
compatible printing daemon. Network means that the output filter
does not use stdout (that is, no lp) and is restarted for each job.
uv ULTRIX version. To enable the ct capability to determine the type
of connection, and to ensure % escapes are expanded in all filter
command strings, you must have
:uv=psv1.0:
as part of the entry.
Using Filter Capabilities
This section refers to the programs specified by the following filter
capabilities in the file: and
Filters may be specified as pipelines as well as simple commands. The
syntax accepts tab or space as word separators, and | to set up a pipe
connection. You can specify arguments to the filters. The individual
commands may be specified as full path names or as simple program
names, in which case the path searched is:
/usr/local/lib/lpdfilters:/usr/ucb:/bin:/usr/bin:
/usr/lib:/usr/lib/lpdfilters
Filter Argument Parameterisation
The arguments to the filter program are normally supplied automatically
by but you can assign your own arguments to filters. When arguments
are supplied automatically, they are put after the arguments for the
first command in a pipeline, or after the arguments of a simple com‐
mand.
If you want to assign your own arguments to filters, you must ensure
that :uv=psv1.0: is set in the appropriate entry in the file.
Arguments are supplied exactly as for previous releases unless a spe‐
cial character (%) is found anywhere in the command. If a % is found
it tells that you have taken control of passing arguments to the fil‐
ter. In this case, the default set of arguments are no longer appended
to the argument list. The arguments supplied to the command are those
specified in the command string, but with replacing %x pairs with
parameter strings.
To allow the special character, %, to be passed, a pair of %%'s are
replaced by a %. It is an error to specify an unknown %x pair. The %x
pairs and the parameter strings that replace them are shown below.
──────────────────────────────────────────────────────
%x Pairs Parameter String
──────────────────────────────────────────────────────
®%% %
%0 null string (used to pass null argument or
disable default arguments)
%_ space (used to insert spaces in arguments)
%A accounting file
%D data type
%F pagesize
%H host where job was submitted
%I indent
%j job name
%J job id as shown by
%L length
%O orientation
%P printer name
%T title
%U user's login name
%W width
%X pixel width
%Y pixel length
──────────────────────────────────────────────────────
All of the above %x pairs are available to all input filters. For a
network printer (:ct=network: in the file) they are all available to
the output filter of. For dev and lat printers the per-job parameters
(%H, %U, %J and %j) are not available to the output filter. This is
because the output filter is invoked per session so that per-job param‐
eters are still unset.
Filter Arguments Supplied By lpd
The arguments automatically assigned to each filter by are shown below.
For clarity the parameters for each argument are shown as the appropri‐
ate %x pair.
─────────────────────────────────────────────────────────────────
Filter Parameterised Form of Default Arguments
─────────────────────────────────────────────────────────────────
®cf -x%X -y%Y -n %U -h %H %A
df -x%X -y%Y -n %U -h %H %A
gf -x%X -y%Y -n %U -h %H %A
if -w%W -l%L -n %U -h %H %A
ishinvoked
without the -l option)
if -c -w%W -l%L -n %U -h %H %A
ishinvoked
with the -l option)
nf -w%W -l%L -n %U -h %H %A
of -w%W -l%L
pp -w%W -l%L -h %T
rf -w%W -l%L -n %U -h %H %A
tf -x%X -y%Y -n %U -h %H %A
vf -x%X -y%Y -n %U -h %H %A
xf (no arguments)
Lf (no arguments)
Xf %D %O %F %W %L %I
─────────────────────────────────────────────────────────────────
The %A argument is only supplied if the af capability is present.
Options-l Log valid requests received from the network. This can be useful
for debugging purposes.
-Llogfile
Write error conditions to the file specified by the argument log‐
file. If this option is not used, error conditions are written to
the system console.
Files
Printer description file
Spool directories
Line printer devices
Socket for local requests
Lists machine names allowed printer access
Lists machine names allowed printer access as trusted machines
See Alsolpq(1), lpr(1), lprm(1), printcap(5), lpc(8), pac(8), xlator_call(8)
Guide to the BIND/Hesiod Service
Guide to System Environment Setup
lpd(8)