LinuxCommandLibrary

cupsd

Manage CUPS printing service

TLDR

Start cupsd in the background, aka. as a daemon

$ cupsd
copy

Start cupsd on the [f]oreground
$ cupsd -f
copy

[l]aunch cupsd on-demand (commonly used by launchd or systemd)
$ cupsd -l
copy

Start cupsd using the specified cupsd.conf [c]onfiguration file
$ cupsd -c [path/to/cupsd.conf]
copy

Start cupsd using the specified cups-files.conf configuration file
$ cupsd -s [path/to/cups-files.conf]
copy

[t]est the cupsd.conf [c]onfiguration file for errors
$ cupsd -t -c [path/to/cupsd.conf]
copy

[t]est the cups-files.conf configuration file for errors
$ cupsd -t -s [path/to/cups-files.conf]
copy

Display [h]elp
$ cupsd -h
copy

SYNOPSIS

cupsd [-c cupsd.conf] [-f] [-F] [-h] [-l] [-L] [-s cups-files.conf] [-t]

PARAMETERS

-c cupsd.conf
    Specify alternate CUPS configuration file

-f
    Run in foreground (do not detach from terminal)

-F
    Run in foreground with PID 1 behavior (systemd-compatible)

-h
    Show built-in usage message

-l
    Log errors to stderr instead of /var/log/cups/error_log

-L
    Log debug messages to stderr

-s cups-files.conf
    Specify alternate client configuration file

-t
    Test the configuration file for syntax errors

DESCRIPTION

cupsd is the core daemon of the Common Unix Printing System (CUPS), a modular printing system for Unix-like operating systems including Linux. It runs as a background service, managing print queues, scheduling jobs, and communicating with printers via various protocols like IPP, LPD, and USB.

Key functions include authenticating users, enforcing print policies, filtering print data, and providing a web-based administration interface at http://localhost:631. cupsd processes incoming print requests from applications via the CUPS API or standard commands like lp, spools jobs securely, and rasterizes them for printers using backends and filters.

It supports network printing, driverless printing with IPP Everywhere, and AirPrint for mobile devices. Configuration is primarily through /etc/cups/cupsd.conf, allowing customization of listening ports, access controls, and logging. cupsd is essential for most Linux distributions' printing stack, integrated with systemd for automatic startup.

CAVEATS

cupsd typically runs as root; misconfiguration can expose printing services to network attacks. Not intended for manual invocation—use systemd or init scripts. Debug mode (-L) generates verbose output unsuitable for production.

CONFIGURATION FILE

Primary config at /etc/cups/cupsd.conf. Edit with caution; use cupsd -t to validate syntax before restart.

WEB INTERFACE

Access admin panel at http://localhost:631/admin. Requires authentication; enable RemoteAdmin in cupsd.conf for network access.

LOGGING

Logs in /var/log/cups/: access_log, error_log, page_log. Levels controlled via LogLevel directive in config.

HISTORY

Developed by Michael Sweet starting in 1999 as an open-source alternative to proprietary Unix print systems. CUPS 1.0 released in 2001; cupsd evolved with IPP support in CUPS 2.0 (2017). Maintained by OpenPrinting since 2016.

SEE ALSO

cups(8), lp(1), lpadmin(8), cupsctl(8), systemd(1)

Copied to clipboard