Line Printer Daemon (LPD)

Last Edited



The Line Printer Daemon (LPD) enables seamless communication between UNIX-based systems and printers across a network. Originating from the early days of UNIX networks, LPD plays a pivotal role in receiving and spooling print jobs on a print server. Whether connected directly to a printer or functioning through a network print device, LPD facilitates a smooth printing process for UNIX clients using the Line Printer Remote (LPR) utility.

This article ventures into the evolution of LPD, its integration within modern network environments, including Windows platforms, and its relevance today.

If you still don’t know what a daemon is, start here!

Table of Contents:

  1. What is the Line Printer Daemon (LPD)?
  2. The Evolution of LPD: From UNIX to Cross-Platform Support
  3. LPD, LPR, and LPQ: Understanding the Utilities
Line Printer Daemon (UNIX)

1. What is the Line Printer Daemon?

The Line Printer Daemon (LPD) is an integral component of the TCP/IP protocol suite, facilitating the process of network printing within UNIX-based systems. LPD’s primary function is to receive and manage print jobs sent from clients, handling them in a spooling queue before they are printed on the designated print server. The LPD print server might be connected directly to the print device, or it might be a network print device that supports LPD. UNIX clients send their jobs to the printer by using the Line Printer Remote (LPR) utility; you can use another utility called Line Printer Queue (LPQ) to check the status of print jobs spooled on the server.

Windows Server Family uses Microsoft Print Services for UNIX, which provides both LPD and LPR services through two Windows 2000 services:

  • LPDSVC: Runs on the Windows 2000 print server and receives print jobs from native LPR utilities running on UNIX workstations. 
  • LPRMON: Runs on the Windows 2000 print server and forwards print jobs to native LPD processes running on UNIX computers with attached printers.
Line Printer Daemon
Line Printer Daemon

2. The Evolution of LPD: From UNIX to Cross-Platform Support

The Line Printer Daemon (LPD) protocol, originally designed for UNIX systems, has undergone significant evolution to accommodate the changing landscape of network printing. In its inception, LPD was a simple yet effective solution for managing print jobs within UNIX networks, leveraging the TCP/IP protocol suite for communication. Its utility was primarily in environments dominated by UNIX servers and workstations, where the need for efficient, network-based print job management was paramount.

From UNIX Beginnings

In the early days, LPD’s functionality was straightforward: to receive print jobs from clients (using the LPR utility), queue these jobs, and manage their execution on the designated printer. This process was essential in environments where multiple users needed access to a limited number of printers, ensuring that print jobs were processed orderly and efficiently.

Expansion into Windows Environments

The advent of heterogeneous network environments, where UNIX and Windows systems coexisted, necessitated the evolution of LPD. Microsoft’s integration of LPD support through the Microsoft TCP/IP Printing service in Windows NT was a landmark in cross-platform support. This allowed UNIX systems to send print jobs to Windows servers, fostering interoperability between disparate operating systems.

Windows 2000 and subsequent versions further enhanced this integration by introducing Microsoft Print Services for UNIX. This suite of services, including LPDSVC and LPRMON, solidified the bridge between UNIX and Windows systems, enabling seamless printing across the network regardless of the underlying operating system.

Modern Adaptations

As network environments have continued to evolve, so too has LPD’s role within them. The protocol has been adapted to support modern printing technologies, including advanced network printers and printing protocols. Additionally, open-source and commercial software solutions have emerged, offering LPD functionality on platforms beyond its original UNIX and Windows confines, such as macOS and various Linux distributions.

Moreover, the rise of cloud computing and virtualization has prompted further adaptations of LPD, enabling it to function in virtualized environments and cloud-based printing solutions. This ensures that LPD remains relevant and useful, even as the nature of network environments and printing technology continues to advance.

3. LPD, LPR, and LPQ: Understanding the Utilities

The Line Printer Daemon (LPD) protocol is complemented by a suite of utilities that facilitate the management of print jobs within a network. These utilities—Line Printer Remote (LPR), Line Printer Queue (LPQ), and others—are essential for users and administrators to interact with the LPD service effectively. Understanding these utilities is crucial for managing network printing tasks efficiently.

Line Printer Remote (LPR)

LPR is the client-side utility that allows users to submit print jobs to the LPD server. It operates by sending a print job, along with control files specifying how the job should be handled, to the LPD queue. LPR’s simplicity and effectiveness have made it a standard tool in UNIX-like environments for initiating network printing tasks. The utility supports various command-line options, enabling users to specify the print queue, the number of copies, and other job attributes.

Line Printer Queue (LPQ)

LPQ is a diagnostic utility that provides users and administrators with the ability to view the current state of the print queue on an LPD server. It lists the jobs that are waiting to be printed, along with their respective job IDs, user names, and status information. This utility is invaluable for monitoring the progress of print jobs and identifying any issues that may arise during the printing process, such as jams or connectivity problems.

Integrating LPD, LPR, and LPQ

The integration of LPD with its associated utilities, LPR and LPQ, creates a robust system for managing network printing. Users submit jobs using LPR, LPD manages the queue and processes the jobs, and LPQ allows for real-time monitoring of the queue’s status. This ecosystem ensures that network printing is both efficient and user-friendly, accommodating the needs of a diverse user base.

The utilities also support advanced features, such as specifying priority levels for print jobs, directing jobs to specific printers or printer classes, and handling of special print job processing instructions. These features enable complex printing scenarios, catering to the varied requirements of modern networked environments.

Understanding LPD, LPR, and LPQ is essential for anyone involved in managing network printing services. These utilities, though rooted in UNIX’s history, have evolved to serve the needs of today’s diverse and complex network environments, demonstrating the enduring relevance of the LPD protocol in network printing.