Line Printer Daemon protocol: Difference between revisions

Content deleted Content added
fixing dupe cats using AWB
m format RFCs
 
(66 intermediate revisions by 48 users not shown)
Line 1:
{{Short description|Network printing protocol}}
:''"LPR" redirects here. For Legal Permanent Resident, see [[Permanent residence (United States)]]''
{{Infobox networking protocol
[[pl:|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''') also known as the '''Berkeley printing system''', is a set of programs that providenetwork [[printerprinting spoolingprotocol]] andfor networksubmitting [[print server]]jobs functionalityto fora [[Unix-like]]remote systemsprinter. The most commonoriginal implementationsimplementation of LPD arewas in the official[[Berkeley printing system]] in the [[BSD]] [[UNIX]] operating system and; the [[LPRng]] project also supports that protocol. The [[Common Unix Printing System]] (or CUPS), which is more common on modern [[Linux]] distributions, borrowsand heavilyalso fromfound on [[macOS]], supports LPD butas implementswell as the [[Internet Printing Protocol|Internet Printing Protocol (IPP)]]. Commercial solutions are available that also leverageuse 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, Line Printer Daemon Protocol, dated August 1990, edited by L.{{Ref McLaughlin III.RFC|1179}}
==Usage ==
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.
 
An LPD printer is identified by the [[IP address]] of the [[personalserver computer|PC]] (or network printer or 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 hashave 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> Some companies{{fix|link=Wikipedia:Contents|text=who?}} have a tradition of calling the queue name “lpt1” or “LPT1”.
==Commands==
The official LPD protocol defines the following commands:
*<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 (computer software)|daemon]] and queues with which the aforementioned commands interface.
 
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 workstationsclients on a network), although that term seemswould be equally applicable to a printer that supports CUPSthe [[Internet Printing Protocol]].
==Usage==
In order for a system to provide print functionality using <tt>'''LPD'''</tt>, 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 on TCP port 515 (in standard implementations) 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.
 
==See also ==
An LPD printer is identified by the IP address of the [[personal computer|PC]] (or network printer or server) and the queue name. 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 has 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> Some companies{{fix|link=Wikipedia:Contents|text=who?}} have a tradition of calling the queue name “lpt1” or “LPT1”.
 
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 workstations on a network), although that term seems equally applicable to a printer that supports CUPS.
 
==References==
{{Reflist}}
{{Refbegin}}
*RFC 1179
{{Refend}}
 
==See also==
 
*[[Lp (Unix)]]
Line 30 ⟶ 23:
*[[Legacy printing]]
*[[Common Unix Printing System|Common Unix Printing System (CUPS)]]
*[[RLPR]]
*[[System V printing system]]
*[[print (command)]]
*[[Spooling]]
*[[Print server]]
Line 38 ⟶ 29:
*[[Foomatic]]
 
==ExternalReferences links==
{{Reflist}}
*[http://www.networkprinting.info/line-printer-daemon.html RPM Line Printer Daemon Software]
*[http://sdisw.com/LPD/ SDI LPD from SDI]
*[http://www.brooksnet.com/lpr-lpd-protocol.html Line Printer Daemon / Requester Comparison]
*[http://linux.about.com/library/cmd/blcmdl1_lpr-cups.htm LPR-CUPS].
 
==External links ==
* [https://www.freebsd.org/cgi/man.cgi?query=lpd&sektion=8 FreeBSD LPD Man Page]
 
[[Category:Computer printing]]
[[Category:NetworkPrinting protocols]]
[[Category:Unix]]
[[Category:Network protocols]]
[[Category:Computer printing]]
 
{{Network-software-stub}}
[[de:Berkeley Printing System]]
[[fr:Line Printer Daemon protocol]]
[[pl:Line Printer Daemon]]
[[ru:Line Printer Daemon]]