Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
LPD(8)			  BSD System Manager's Manual			LPD(8)

     lpd -- line printer spooler daemon

     lpd [-dlrs] [-b bind-address] [-n maxchild] [-w maxwait] [port]

     lpd is the	line printer daemon (spool area	handler) and is	normally in-
     voked at boot time	from the rc(8) file.  It makes a single	pass through
     the printcap(5) file to find out about the	existing printers and prints
     any files left after a 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 par-
     ent can continue to listen	for more requests.

     The options are as	follows:

     -b	bind-address
	     Normally, if the -s option	is not specified, lpd will listen on
	     all network interfaces for	incoming TCP connections.  The -b op-
	     tion, followed by a bind-address specifies	that lpd should	listen
	     on	that address instead of	INADDR_ANY.  Multiple -b options are
	     permitted,	allowing a list	of addresses to	be specified.  Use of
	     this option silently overrides the	-s option if it	is also
	     present on	the command line.  bind-address	can be a numeric host
	     name in IPV4 or IPV6 notation, or a symbolic host name which will
	     be	looked up in the normal	way.

     -d	     The -d option turns on the	SO_DEBUG socket(2) option.  See
	     setsockopt(2) for more details.

     -l	     The -l flag causes	lpd to log valid requests received from	the
	     network.  This can	be useful for debugging	purposes.

     -n	maxchild
	     The -n flag sets maxchild as the maximum number of	child pro-
	     cesses that lpd will spawn.  The default is 32.

     -r	     The -r flag allows	the "of" filter	to be used if specified	for a
	     remote printer.  Traditionally, lpd would not use the output fil-
	     ter for remote printers.

     -s	     The -s flag selects "secure" mode,	in which lpd does not listen
	     on	a TCP socket but only takes commands from a UNIX-domain
	     socket.  This is valuable when the	machine	on which lpd runs is
	     subject to	attack over the	network	and it is desired that the ma-
	     chine be protected	from attempts to remotely fill spools and sim-
	     ilar attacks.

     -w	maxwait
	     The -w flag sets maxwait as the wait time (in seconds) for	dead
	     remote server detection.  If no response is returned from a con-
	     nected server within this period, the connection is closed	and a
	     message logged.  The default is 300 seconds.

     If	the port parameter is passed, lpd listens on this port instead of the
     usual "printer/tcp" port from /etc/services.

     Access control is provided	by two means.  First, all requests must	come
     from one of the machines listed in	the file /etc/hosts.lpd, one hostname
     per line.	A plus "+" may be used as a wildcard to	grant access to	all
     hosts.  Second, if	the "rs" capability is specified in the	printcap(5)
     entry for the printer being accessed, lpr requests	will only be honored
     for those users with accounts on the machine with the printer.

     lpd performs reverse DNS lookups on network clients.  If a	client host-
     name cannot be determined from its	IP address, the	print request will be
     silently dropped.	This is	important to note when debugging print prob-
     lems in dynamic address environments.

     The file minfree in each spool directory contains the number of disk
     blocks to leave free so that the line printer queue won't completely fill
     the disk.	The minfree file can be	edited with your favorite text editor.

     The daemon	begins processing files	after it has successfully set the lock
     for exclusive access (described a bit later), and scans the spool direc-
     tory for files beginning with cf.	Lines in each cf file specify files to
     be	printed	or non-printing	actions	to be performed.  Each such line be-
     gins with a key character to specify what to do with the remainder	of the

     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	info 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(1) was invoked.

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

     M	     Send mail to the specified	user when the current print job	com-

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

     l	     Like "f" but passes control characters and	does not make page

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

     t	     Troff File.  The file contains troff output (cat phototypesetter

     n	     Ditroff File.  The	file contains device independent troff output.

     r	     DVI File.	The file contains Tex l	output DVI format from Stan-

     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 charac-

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

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

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

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

     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 by (in

     U	     Unlink.  Name of file to remove upon completion of	printing.

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

     If	a file cannot be opened, a message will	be logged via syslog(3)	using
     the LOG_LPR facility.  lpd	will try up to 20 times	to reopen a file it
     expects to	be there, 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

     /etc/printcap		  printer description file
     /var/spool/output/*	  spool	directories
     /var/spool/output/*/minfree  minimum free space to	leave
     /dev/lp*			  line printer devices
     /var/run/printer		  socket for local requests
     /etc/hosts.lpd		  lists	machine	names allowed printer access

     lpq(1), lpr(1), lprm(1), syslog(3), hosts(5), printcap(5),
     resolv.conf(5), lpc(8)

     4.3BSD Line Printer Spooler Manual.

     An	lpd daemon appeared in Version 6 AT&T UNIX.

     lpd previously required that clients connected using a privileged port
     (below 1024).  This restriction was removed because it does not provide
     additional	security and also because many modern clients connect using an
     unprivileged port.

BSD			       November	17, 2015			   BSD


Want to link to this manual page? Use this URL:

home | help