NAME¶
lpd.conf - configuration file for the LPRng line printer spooler system
DESCRIPTION¶
The file
lpd.conf is used to provide configuration information for the
LPRng Printer spooler system and defaults for printcap information. Leading
spaces on lines are ignored, and blank lines and lines whose first nonblank
character is a sharp (``#'') are ignored. Trailing blanks and tabs
(whitespace) for an option value are deleted unless the last one is escaped
with a backslash (``\''). All other lines specify parameters and should be of
the following form:
keyword
keyword@
keyword#value
keyword=value
Note that these values are the same format as
printcap(5) values. Values
in the configuration can contain host or machine dependent information; to
assist with this, the following
escape sequences in the configuration
information are replaced as follows:
- %h
- the short form of the host name (i.e.- non fully
qualified).
- %H
- the fully qualified host name.
- %a
- the abbreviated architecture name, sun4,
sol2, hpux, aix, irix5, etc. This value can be
set using the architecture keyword in the configuration file and is
set to a default value at compile_time.
- %P
- the printer name from the printcap entry (see below).
- %R
- the remote printer name from the printcap entry.
- %M
- the remote host name from the printcap entry. This is
truncated to the short host name.
For example, on host
dickory.sdsu.edu, the strings
short=%h
long=%H arch=%a would be expanded as
short=dickory long=dickory.sdsu.edu arch=sun4 .
The P, R, and M tags are provided for use with combined configuration and
printcap information. These values are not expanded when the printcap
information is initially processed, and can be used only in a limited number
of printcap or other entries. Currently only the printcap :sd: (spool
directory) and :forward_server: (forward server) entries use these.
GENERAL CONFIGURATION PARAMETERS¶
Some of the following parameters take lists of files or directories. Unless
otherwise explicitly stated, these lists can be separated by commas (,),
semicolons (;), or colons, (punctuation) and possibly tabs or spaces
(whitespace) as well.
Keyword names can use either underscores (_) or hyphens (-) in their names, but
the underscore is preferred.
- include pathname [pathname*] (no default)
- This can be used to include files into the lpd.conf
file. The include file parameter a whitespace separated list of files; the
files must have absolute pathnames and must be readable.
- ae (default: "jobend $H $n $P $k $b
$t")
- This specifies either a script or a filter to be invoked at
the send of a job for accounting purposes. See as for the matching
accounting at start, and the printcap(5) and lpd(8) man
pages for details.
- allow_getenv (default: "LPD_CONF")
- This option specifies an environment variable whose value
is a configuration file. Use of this is restricted to test purposes, and
SUID ROOT client and server will not run when the variable is
enabled.
- ar (default: yes)
- See printcap(5) for details.
- architecture
- The default value is set at compile time and can be
overwritten with this parameter. The default value of this parameter is
set at compile time and it is used when expanding the special sequence
%a in pathname and filename strings in this config file.
- auth (default: NULL)
- Authentication type to be used for client to server
communication.
- auth_client_filter (default: NULL)
- Program to be used for client to server communication.
- auth_forward (default: NULL)
- Authentication type to be used for server to server
communication.
- auth_forward_filter (default: NULL)
- Program to be used for server to server communication.
- auth_forward_id (default: NULL)
- Authentication id of remote server for server to server
communication.
- auth_receive_filter (default: NULL)
- Program to be used by server receive server or client
communication.
- auth_server_id (default: NULL)
- Authentication id of originating client or server.
- as (default: "jobstart $H $n $P $k $b
$t")
- See as.
- bk (default: no)
- See printcap(5) for details.
- bk_filter_options
- (default: "$P $w $l $x $y $F $c $L $i $J $C $0n $0h
$-a") If the "bkf" (backwards compatible filter) flags is
set in the printcap entry and the original filter specification does not
have a `$` in it, this option string is appended to a filter
specification, and the string expanded with values from the printcap
information and job information. (see of_filter_options, filter_options,
bk_filter_options, bk_of_filter_options)
- bk_of_filter_options
- (default: "$w $l $x $y") If the "bkf"
(backwards compatible filter) flags is set in the printcap entry and the
original filter specification does not have a `$` in it, this option
string is appended to the OF filter specification, and the string expanded
with values from the printcap information and job information. (see
of_filter_options, filter_options, bk_filter_options,
bk_of_filter_options)
- check_for_nonprintable (default: "")
- (Used by LPR) check f and p formats for non_printable
characters unless -b (binary) or -l (literal) command_line
option is supplied. Note that files containing HPGL or other printer
control languages would often be classed as ``non_printable''.
- connect_grace (default: 0 seconds)
- The time to pause before opening a new connection to a
printer. This allows the printer time to recover from the previous
job.
- connect_interval (default: 10 (seconds))
- The time to pause after a failed connection or open of the
printing device before attempting a new connection or open.
- connect_timeout (default: 10 (seconds))
- The time to wait for a device open or connection to
complete. A zero value is infinite timeout.
- retry_nolink (default: true)
- When TRUE and the LPD server is printing or transferring a
job, then an indefinite number of attempts to connect to or open the IO
device will be made.
- default_banner_printer (default: "")
- The default banner printer program to be used for printing
banners. This should be specified in the LPD configuration file.
- default_format (default: "f")
- Default format for printing jobs.
- default_logger_port
- (default: 2001) specifies a default port number for logger
information. See logger_destination for details.
- default_logger_protocol
- (default: UDP) specifies a default protocol for logger
information. See logger_destination for details.
- default_permission (default: ACCEPT)
- Default permission for operations.
- default_printer (default: "")
- The default printer to use if there is no PRINTER
environment variable, the user has not specified a printer, or there is no
printcap information.
- default_priority (default: "A")
- Default priority (class) for printing jobs. This is also
used as the job class.
- default_remote_host (default: "%H")
- The default remote host to use.
- default_tmp_dir (default: /tmp)
- Directory for temporary files.
- domain_name (default: "")
- This parameter is optional, and is appended to the hostname
to make it into a fully_qualified domain name, ie. class.iona.ie.
It will only be used if the software cannot determine the domain name
using other means, such as gethostbyname(3n).
- ff (default: \f)
- Formfeed string.
- filter_ld_path
- (default: ) The value for the environment variable
LD_LIBRARY_PATH, both used when executing, and passed on to filters. This
variable is used to find shared libraries on SunOS, Solaris and
Linux.
- filter_options
- (default: "$C $F $H $J $L $P $Q $R $Z $a $c $d $e $f
$h $i $j $k $l $n $p $r $s $w $x $y $-a") If the "bkf"
(backwards compatible filter) flags is not set in the printcap entry and
the original filter specification does not have a `$` in it, this option
string is appended to a filter specification, and the string expanded with
values from the printcap information and job information. (see
of_filter_options, filter_options, bk_filter_options,
bk_of_filter_options)
- filter_path
- (default: /bin:/usr/bin:/usr/local/bin) The value for the
environment variable PATH, both used to find filters and passed on to
filters run by lpd and lpr.
- force_poll (default: no)
- Some software packages put print jobs directly into the
spool queues. The force_poll flag forces lpd to periodically poll
spool queues looking for jobs and no server. The poll_time variable
sets the interval between polls.
- full_time (default: no)
- Use full time and date format in logging and error
messages.
- fx (default: "")
- See printcap(5) for details. This specifies the job
formats allowed for this queue.
- group (default "daemon")
- The group to use for file ownership and process
permissions. Used only by lpd; this can be the name of a group or a
number. All filters will run as the specified group. Note that if the
group value is 0, then the real user group of the process at startup will
be used.
- kerberos_keytab (default
"/etc/lpd.keytab")
- The keytab file to be used by the LPD server when using
built-in kerberos authentication. The keytab file should be owned by the
LPD server, and be readable/writable only by it (i.e. - 600
permissions).
- kerberos_life (default NULL)
- The lifetime of a Kerberos ticket. NULL selects the default
lifetime. Time should be specified using the standard Kerberos time
representations.
- kerberos_forward_principal (default NULL)
- remote principal used by server when forwarding
- kerberos_renew (default NULL)
- The renewal of a Kerberos ticket. NULL selects a
non-renewable ticket. Time should be specified using the standard Kerberos
time representations.
- kerberos_server_principal (default
"lpr")
- Server principal used when client sending to server or when
server is originating connection to another server for forwarding.
- kerberos_service (default "lpr")
- The service name used to make requests to the LPD server
when using kerberos authentication. For example, if kerberos_service has
the value lpr, the server is on host alpha.com, and the kerberos domain is
ALPHA.COM, then the kerberos principal name would be:
lpr/alpha.com@ALPHA.COM.
- la (default: yes)
- See printcap(5) for details.
- lf (default: log)
- Name of the log file.
- lo (default: lock)
- Name of the lock file.
- localhost
- (default "localhost") The name of the localhost
entry to be used for the TCP/IP loopback interface. The TCP/IP connection
may originate from the local host; use this name to check to see if the
local host address is in the IP address database, and use it as the
origination address for local connections. This is done to avoid problems
with multi-homed hosts who originate connections from different
interfaces.
- lockfile (default: /var/spool/lpd/lpd)
- The file used to indicate the presence of an lpd
server running on the host. The lpd_port value is appended to the lockfile
value to provide a unique lockfile even when different versions of LPRng
are running on the same system.
- logger_destination
- (default: "") This specifies a destination for
logger information generated by the lpd server. The formation of the
destination specification is host[%port][,(TCP|UDP)]. For example,
localhost%2001,UDP would send logger information to the localhost IP
address, on port 2001 using the UPD protocol. The default port and
protocol are set by the default_logger_port and default_logger_protocol
configuration variables respectively.
- longnumber
- (default: no) RFC1179 requires 3 digit job numbers; setting
longnumber to yes allows 6 digit numbers. If the backwards_compatible flag
is set, only 3 digit numbers will be used.
- lpd_listen_port (default: =off) [ipaddr%]port
- The port that lpd binds to. If the parameter is set
to off then lpd does not listen to any TCP port. See
lpd_port for details of the format of the argument.
If this is not set at all, then lpdP will listen on
lpd_port.
- lpd_port (default: printer)
[ipaddr%]port
- The port that lpr and the other client programs send
their requests to. The specification has the format ipaddr%port. If the IP
address is specified then a bind to only this address and port is done. If
the port value is not a number a service lookup is performed and the
corresponding service port is used; see services(5). This parameter is
useful for debugging a new installation of LPRng, in that running LPRng on
a different port from the default will not interfere with a previous
installation of LPD or LPRng.
- lpd_printcap_path (default: "")
- The location of lpd server only printcap database
information. If this is nonblank the printcap_pathP will not be used by
the lpd server.
- mail_operator_on_error (default: "")
- Put this person on the CC-list of the mail, if it is not a
success mail. (So in addition to the person who made the printer request,
also this person gets error messages, but no success messages.)
- max_status_line (default: 79)
- An integer value specifying the numbers of characters to be
used for displaying simple job status; this includes the queue position,
job identifier, job contents, size, and time. A 0 (zero) value indicates
no restrictions.
- max_status_size (default: 10 (Kbytes))
- An integer value specifying (in K bytes) the maximum size
of the status file to be generated during printing operations. A 0 value
will create unlimited size status files. When the file size exceeds this
value, it is truncated to min_status_size K bytes.
- mc (default: 1)
- See printcap(5) for details.
- min_status_size (default: 0 (Kbytes))
- Minimum status size. If 0, defaults to 20 percent of
max_status_size.
- minfree (default: 0)
- The amount of free space (in Kbytes) needed in the spool
directory in order for a job to be accepted. If 0, there is no limit; if
the parameter is the name of a file rather than a number, the file must
contain a numerical minimum free value (in Kbytes). This value is
overridden by the printcap mi field value.
- ms_time_resolution
- (default: FALSE) This flag causes the time information to
be printed to millisecond accuracy. This is overkill for most
purposes.
- of_filter_options
- (default: "") If this is not set, the value
defaults to the same as the filter_options value. This string is appended
to a OF filter specification, and the string expanded with values from the
printcap information and job information. If the "bkf"
(backwards compatible filter) flags is set in the printcap entry, of
bk_of_filter_options value is appended instead (see of_filter_options,
filter_options, bk_filter_options, bk_of_filter_options)
- originate_port
- (default: "721 731") A range of port numbers to
originate requests from. When sending service requests, the software will
try to open and bind to these ports to originate a request to a server. If
no port is given, or all of the requested ports are unavailable or cannot
be bound to, then a normal use port is requested. Note that on UNIX
systems, if a port in the range 0-1023 is requested the EUID of the
process must be root for the request to be granted. Note that RFC1179
specifies that requests must originate from ports in the range
721-731.
- pass_env
- (default:
"LANG,LC_CTYPE,LC_NUMERIC,LC_TIME,LC_COLLATE,LC_MONETARY,
LC_MESSAGES,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONE,LC_MEASUREMENT,
LC_IDENTIFICATION,LC_ALL") Client programs such as LPR, LPC, etc.,
will pass these environment variables to any filter programs they
start.
- poll_time (default: 6000)
- Interval in seconds at which LPD checks for queues with
jobs and no server active. See force_poll as well.
- pl (default: 66)
- See printcap(5) for details.
- pr (default: /bin/pr)
- See printcap(5) for details.
- printcap_path
- (default: "/etc/printcap") The location of the
printcap database file. If a file or filter does not exist, it is
considered a fatal error. All valid entries in these files will be used.
See PRINTCAP LOOKUP for details.
- perms_path
- (default: /etc/lpd.perms:/usr/etc/lpd.perms:
/var/spool/lpd/lpd.perms.%h) The location of the printer permissions
database. If a file or filter does not exist, it is skipped. The first
file or filter that exists and is readable will be used. See PERMISSIONS
LOOKUP for details.
- pw (default: 80)
- See printcap(5) for details.
- save_on_error
- (default: no) Save a job in the spool queue if it has an
error rather than removing it.
- save_when_done
- (default: no) Save a job in the spool queue after
completion rather than removing it.
- send_data_first
- (default: no) Send data files of a job first, followed by
the control file.
- send_failure_action (default: "")
- The lpd server uses this to determine the action to take
when unable to print or process a job. The keyword abort will cause
it to terminate operations, leaving the job in the queue, remove
will cause it to remove the job, retry will cause it to retry the
job, and hold will cause it to hold the job with an error
indication. If the value is a filter, then the filter will be invoked and
the exit status of the filter used to determine the actions.
- send_job_rw_timeout (default: 6000)
- When printing or sending a job to a remote printer, use
this as a write to the device or remote host timeout value. If a timeout
occurs, then a FAIL status is returned and the send_failure_action value
is used to determine what to do on failure.
- send_try (default: 3)
- Numbers of times to try to send a job to the printer or
remote host. A 0 value means an infinite number of times.
- sendmail (default: "/usr/lib/sendmail -oi
-t")
- If the argument is empty then all mail_related
functionality is disabled. The arguments are the command to run when mail
is to be sent. The command used needs to be able to accept the message on
stdin, with no arguments. The message will contain the To:,
From:, Cc: and Subject: headers.
- server_tmp_dir (default: /tmp)
- Temporary dir for the server.
- spool_dir_perms (default: 042700)
- Permissions of the spool directories.
- spool_file_perms (default: 0600)
- Permissions of the spool files.
- syslog_device (default: /dev/console)
- Log to this device if all else fails.
- unix_socket_path (default:
/var/run/lprng/socket)
- Location of the Unix socket that lpd listens on and LPRng
clients attempt to communicate to when host is localhost. Set to
off to disable listening and connecting via a Unix socket.
- use_date (default: no)
- No information about this parameter available.
- use_identifier (default: no)
- Add a job identifier line to the control file, using the
'A' entry in the control file.
- use_info_cache (default: yes)
- If this is set to yes, lpd.perms and printcap
information lookups will be cached for later use. Only lookups in the main
databases will be cached, not lookups in the per_printer databases. You
can force the lpd to flush its cache and reread the permissions
file by sending it a SIGHUP.
- use_queuename (default: no)
- Put an entry into control files identifying the spool queue
the job was originally sent to. The entry has the form 'Qspoolname', and
its value can be passed to filters. This is useful for setting up a spool
queue which formats jobs in different ways, depending on the name of the
queue.
- use_shorthost (default: no)
- By default, names of lpr job files used the originating
host fully qualified domain name. This can exceed 14 characters, the limit
of file names on some UNIX systems. If this is set to yes, the
non-qualified name will be used, and if the host name is at most 8
characters the file name will be at most 14 characters long.
- user (default: daemon)
- The user that lpd and its filters runs as, and the
owner of the spool directories and other lpd_writable files. This can be
the name of a user or a number. If the user value is 0, then the real UID
of the program when started will be used. This allows a non_root user to
test the functionality of the LRPng software.
PRINTCAP LOOKUP, DATABASE FILES AND FILTERS¶
The printcap_path and printer_perms_path variables specify a list of either data
base files or filters to use to get printcap or permission entries for a
printer. To get information, the filter is started and a single line with the
printer name is sent to it. Note that the printer name
all is used to
request information either about all printers, or a specific printer entry
that has a list of all printers. See
printcap(5) for more details.
To find the printcap information, LPRng programs will read the database files
specified in the
printcap_path entry. The
lpd server will read
any additional files specified in the
lpd_printcap_path entry. If any
of the files is missing or non-readable a fatal error will result. After
having searched the various files, if a filter has been specified the filter
will be started and the required printer name will be sent to the filter. The
output from the filter will be used as the printcap information.
Environment variables are sanitized by
lpd and the other executables, in
that the variables
IFS,
LD_PRELOAD and
LD_PROFILE are all
deleted from the environment passed to filters and any other sub_processes.
For more reliability, script filters should set their own PATH and
LD_LIBRARY_PATH variables.
All filters will run as the user and group specified by the group and user
variables.
EXAMPLE¶
# lpd.conf generated from on Wed Apr 7 07:59:48 PDT 1999
# The values in this file are the default values.
# If you modify the file, set the value to something other than the default
# For example, '# default force_localhost' means
# the 'force_localhost' option value is on or 1.
# Uncomment this and change it to read 'force_localhost@'
# Purpose: always print banner, ignore lpr -h option
# default ab@
# Purpose: query accounting server when connected
# default achk@
# Purpose: accounting at end (see also af, la, ar, as)
# default ae=jobend $H $n $P $k $b $t
# Purpose: name of accounting file (see also la, ar)
# default af=
af=acct
# Purpose: automatically hold all jobs
# default ah@
ah
# Purpose: Allow duplicate command line arguments (legacy requirement)
# default allow_duplicate_args@
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/lprng/lpd.conf LPRng configuration file
${HOME}/.printcap user printer description file
/etc/printcap printer description file
/etc/lprng/lpd.perms permissions
/var/run/lprng/lpd lock file for queue control
/var/spool/lpd spool directories
/var/spool/lpd/QUEUE/control queue control
/var/spool/lpd/QUEUE/log trace or debug log file
/var/spool/lpd/QUEUE/acct accounting file
/var/spool/lpd/QUEUE/status status file
SEE ALSO¶
lpc(8),
lpd(8),
checkpc(8),
lpr(1),
lpq(1),
lprm(1),
printcap(5),
lpd.perms(5),
pr(1),
lprng_certs(1),
lprng_index_certs(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 functionality 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
ftp://ftp.lprng.com/pub/LPRng.
AUTHOR¶
Patrick Powell <papowell@lprng.com>.