Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ lpd.bsd(8) — Domain/IX SR9.5

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lpq(1)

lpr(1)

lprm(1)

printcap(5)

lpc(8)

rc(8)

LPD(8)

NAME

lpd − line printer daemon

USAGE

/usr/lib/lpd [ −l ] [ −L logfile ] [ port # ] [ −m ]

DESCRIPTION

Lpd is the line printer daemon (spool area handler) and is normally invoked at boot time from a node’s ‘node_data/etc.rc file.  With DOMAIN/IX, you have the option of running lpd on one or more nodes.  See NOTES TO DOMAIN/IX USERS below for details. 

The lpd daemon makes a single pass through the printcap(5) file to find out about the existing printers and prints any files left from a previous crash.  It then uses the system calls listen(2) and accept(2) to receive requests to print files in the queue, transfer files to the spooling area, display the queue, or remove jobs from the queue.  In each case, it forks a child to handle the request so the parent can continue to listen for more requests. 

Access control is provided in two ways.  First, all print requests must come from one of the machines listed in the file /etc/hosts.equiv. Second, if the “rs” capability, which restricts remote use of a printer, is specified in the printcap entry for the printer requested, lpr requests will only be honored for users with accounts on the machine with that printer.  In the case of DOMAIN/IX, this means that use of a printer on the DOMAIN ring would be restricted to other nodes on that DOMAIN ring. 

The file lock in each spool directory prevents multiple daemons from becoming active simultaneously, and stores information about the daemon process for lpr(1), lpq(1), and lprm(1).  After the daemon has successfully set the lock, it scans the directory for files beginning with cf.  Lines in each cf file specify either files to be printed or other, non-printing actions to be performed.  Each such line begins with a key character to specify what to do with the remainder of the line. 

If a file cannot be opened, a message will be placed in the log file, normally the console.  (Under DOMAIN/IX, errors are usually diverted to the file /usr/adm/lpd-errs.)  Lpd will try up to 20 times to reopen a file, after which it will skip the file to be printed. 

Lpd uses flock(2) to provide exclusive access to the lock file and to prevent multiple daemons from becoming active simultaneously.  If the daemon should be killed or die unexpectedly, the lock file need not be removed.  The lock file is kept in a readable ASCII form and 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 to reflect the current status of lpd for the programs lpq(1) and lprm(1). 

KEY CHARACTERS

J Job Name.  String to be used for the job name on the burst page. 

C Classification.  String to be used for the classification line on the burst page. 

L Literal.  The line contains identification information from the password file and causes the banner page to be printed. 

T Title.  String to be used as the title for pr(1). 

H Host Name.  Name of the machine where lpr was invoked. 

P Person.  Login name of the person who invoked lpr.  This is used to verify ownership by lprm. 

M Send mail to the specified user when the current print job completes. 

f Formatted File.  Name of a file to print which is already formatted. 

l Like “f” but passes control characters and does not make page breaks. 

p Name of a file to print using pr(1) as a filter. 

t Troff File.  The file contains troff(1) output (phototypesetter commands). 

d DVI File.  The file contains output in DVI (Stanford) format. 

g Graph File.  The file contains data produced by plot. 

c Cifplot File. The file contains data produced by cifplot. 

v The file contains a raster image. 

r The file contains text data with FORTRAN carriage control characters. 

1 Troff Font R. Name of the font file to use instead of the default. 

2 Troff Font I. Name of the font file to use instead of the default. 

3 Troff Font B. Name of the font file to use instead of the default. 

4 Troff Font S. Name of the font file to use instead of the default. 

W Width. Changes the page width (in characters) used by pr(1) and the text filters. 

I Indent.  The number of characters to indent the output (in ascii). 

U Unlink.  Name of file to remove once printing is done. 

N File name.  The name of the file which is being printed, or a blank for the standard input (when lpr is invoked in a pipeline). 

OPTIONS

−l Cause lpd to log valid requests received from the network.  This can be useful for debugging purposes. 

port# Change the Internet port number used to rendezvous with other processes. 

−L logfile Write error conditions on logfile, rather than on the system console.

−m Send mail to a local user if requested by lpr. Normally, such mail is addressed to user@host, but this option causes the address to be simply user. 

NOTE TO DOMAIN/IX USERS

The DOMAIN/IX implementation of lpd includes an optional file /usr/spool/lpd/servername that controls which machine runs the line printer daemon lpd.  If the file is not present, any machine on the network can run lpd.  Note, however, that only one lpd server should be run per /usr/spool/lpd directory.  This limitation exists because the flock(2) protocol used by lpd is only valid on a single node, not across the ring. 

To allow only one machine to run lpd, create this file and place in it the TCP/IP host name of the machine that is to run lpd.  If anyone attempts to start lpd on a machine other than the one specified in /usr/spool/lpd/servername, lpd will fail and return an error message indicating that the daemon may only be run on that machine. 

For a node to run lpd successfully, it must be correctly configured to run DOMAIN/IX TCP/IP.  See System Administration for DOMAIN/IX bsd4.2 for information on configuring TCP/IP. 

NOTES

If the −m option is not specified, lpd sends mail to user@host.  The sendmail configuration file must, therefore, know about DOMAIN TCP hosts. 

FILES

/etc/printcap printer description file

/usr/spool/lpd/* spool directories

/usr/spool/lpd/servername
name of machine that should run lpd

/etc/hosts.equiv lists machine names allowed printer access

RELATED INFORMATION

lpq(1) lpr(1) lprm(1) printcap(5) lpc(8) rc(8) Managing TCP/IP-Based Communications Products

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026