Line Printer Daemon protocol: Difference between revisions

Content deleted Content added
FlaBot (talk | contribs)
m warnfile Adding:de
m format RFCs
 
(108 intermediate revisions by 77 users not shown)
Line 1:
{{Short description|Network printing protocol}}
The '''Line Printer Daemon protocol''' (or '''LPR''', '''LPD''') also known as the '''Berkeley printing system''', is a set of programs that provide [[printer spooling]] and network [[print server]] functionality for [[Unix-like]] systems. The most common implementations of LPD are the official [[BSD]] UNIX operating system and the [[LPRng]] project. The [[Common Unix Printing System]] (or CUPS), which is more common on modern [[Linux]] distributions, borrows heavily from LPD.
{{Infobox networking protocol
|title=Line Printer Daemon
|purpose=Submitting print jobs to a remote printer
|rfcs={{IETF RFC|1179|plainlink=yes}}
|ports=515
|date={{Start date and age|1983}}
|based on=[[Berkeley printing system]]
}}
 
The '''Line Printer Daemon protocol/Line Printer Remote protocol''' (or '''LPD''', '''LPR''') is a network [[printing protocol]] for submitting print jobs to a remote printer. The original implementation of LPD was in the [[Berkeley printing system]] in the [[BSD]] [[UNIX]] operating system; the [[LPRng]] project also supports that protocol. The [[Common Unix Printing System]] (or CUPS), which is more common on modern [[Linux]] distributions and also found on [[macOS]], supports LPD as well as the [[Internet Printing Protocol|Internet Printing Protocol (IPP)]]. Commercial solutions are available that also use Berkeley printing protocol components, where more robust functionality and performance is necessary than is available from LPR/LPD (or CUPS) alone (such as might be required in large corporate environments). The LPD Protocol Specification is documented in RFC 1179.{{Ref RFC|1179}}
==Commands==
==Usage ==
The official LPD protocol defines the following commands:
A server for the LPD protocol listens for requests on TCP port 515.{{Ref RFC|1179}} A request begins with a byte containing the request code, followed by the arguments to the request, and is terminated by an ASCII [[Newline|LF]] character.
*<tt>lpr</tt>&mdash;Assign a job to a queue.
*<tt>lpq</tt>&mdash;Display the jobs assigned to a queue and their print status.
*<tt>lprm</tt>&mdash;Remove a job from a queue.
*<tt>lpc</tt>&mdash;Control a queue.
The <tt>lpd</tt> program provides the [[daemon]] and queues with which the aforementioned commands interface.
 
An LPD printer is identified by the [[IP address]] of the server machine and the queue name on that machine. Many different queue names may exist in one LPD server, with each queue having unique settings. Note that the LPD queue name is case sensitive. Some modern implementations of LPD on network printers might ignore the case or queue name altogether and send all jobs to the same printer. Others have the option to automatically create a new queue when a print job with a new queue name is received. This helps to simplify the setup of the LPD server.<ref>[http://gpvno.co.za/ Winet]'s InetLPD server documentation.</ref>
==Usage==
In order that a system provide print functionality using LPD, the <tt>lpd</tt> program must be configured and started. Based upon its configuration, it will create the necessary queues and address the printers available to users of the system. Once started, it listens for local messages from the <tt>lpr</tt>, <tt>lpq</tt>, <tt>lprm</tt>, and <tt>lpc</tt> programs, as well as for network messages from remote clients who also implement the LPD protocol.
 
A printer that supports LPD/LPR is sometimes referred to as a "TCP/IP printer" ([[Internet protocol suite|TCP/IP]] is used to establish connections between printers and clients on a network), although that term would be equally applicable to a printer that supports the [[Internet Printing Protocol]].
==References==
*RFC 1179
 
==See also ==
 
*[[Lp (Unix)]]
*[[LPRng]]
*[[Legacy printing]]
*[[Common Unix Printing System|Common Unix Printing System (CUPS)]]
*[[System V printing system]]
*[[Spooling]]
*[[Print server]]
*[[LpApplication (Unix)layer]]
*[[Foomatic]]
 
==References ==
{{Reflist}}
 
==External links ==
* [https://www.freebsd.org/cgi/man.cgi?query=lpd&sektion=8 FreeBSD LPD Man Page]
 
[[Category:Computer printing]]
[[Category:Printing protocols]]
[[Category:Unix]]
 
{{Network-software-stub}}
[[de:Berkeley Printing System]]