cups‐lpd − receive print jobs and report printer status to
lpd clients

cups‐lpd [ ‐o option=value ]

cups‐lpd is the CUPS Line Printer Daemon ("LPD") mini‐server
that supports legacy client systems that use the LPD
protocol.  cups‐lpd does not act as a standalone network
daemon but instead operates using the Internet "super‐
server" inetd(8). Add the following line to the inetd.conf
file to enable the cups‐lpd daemon:

    printer stream tcp nowait lp /path/to/cups/daemon/cups‐lpd cups‐lpd ‐o document‐format=application/octet‐stream

If you are using the newer xinetd(8) daemon, add the
following lines to the xinetd.conf file:

    service printer
        socket_type = stream
        protocol = tcp
        wait = no
        user = lp
     group = sys
     passenv =
        server = /path/to/cups/daemon/cups‐lpd
     server_args = ‐o document‐format=application/octet‐stream

The /path/to/cups/daemon is usually /usr/lib/cups/daemon or
/usr/libexec/cups/daemon, depending on the operating system.
Consult the cupsd.conf file for the local setting.

The ‐o option to cups‐lpd inserts options for all print
queues.  Most often this is used to disable the "l" filter
so that remote print jobs are filtered as needed for

    printer stream tcp nowait lp /usr/lib/cups/daemon/cups‐lpd cups‐lpd         ‐o document‐format=application/octet‐stream

    server = /usr/lib/cups/daemon/cups‐lpd
    server_args = ‐o document‐format=application/octet‐stream

The example shown resets the document format to be
application/octet‐stream, which forces auto‐detection of the
print file type.

cups‐lpd performs well with small numbers of clients and
printers. However, since a new process is created for each
connection and since each process must query the printing
system before each job submission, it does not scale to
larger configurations. We highly recommend that large
configurations use the native IPP support provided by CUPS


cups‐lpd currently does not perform any access control based
on the settings in cupsd.conf(5) or in the hosts.allow(5) or
hosts.deny files used by TCP wrappers. Therefore, running
cups‐lpd on your server will allow any computer on your
network (and perhaps the entire Internet) to print to your

While xinetd has built‐in access control support, you should
use the TCP wrappers package with inetd to limit access to
only those computers that should be able to print through
your server.

cups‐lpd is not enabled by the standard CUPS distribution.
Please consult with your operating system vendor to
determine whether it is enabled in their distributions.

cups‐lpd does not enforce the restricted source port number
specified in RFC 1179, as using restricted ports does not
prevent users from submitting print jobs. While this
behavior is different than standard Berkeley LPD
implementations, it should not affect normal client

The output of the status requests follows RFC 2569, Mapping
between LPD and IPP Protocols. Since many LPD
implementations stray from this definition, remote status
reporting to LPD clients may be unreliable.

cupsd(8), inetd(8), xinetd(8), CUPS Software Administrators
Manual, http://localhost:631/documentation.html

Copyright 1993‐2004 by Easy Software Products, All Rights