lprm(1b) on Solnix vs Linux and the BSDs

On Solnix, lprm is the illumos BSD-compatibility command at /usr/bin/lprm (the page's synopsis shows /usr/ucb/lprm). Its basic usage matches the BSD lprm: -P, a lone -, job numbers and user names. It differs in how printers are named and located (name-service printers database, URI-style names, IPP), and in having no PRINTER variable or -w documented.

What Solnix runs

A default Solnix system runs the illumos lprm at /usr/bin/lprm. The page synopsis shows /usr/ucb/lprm, which is also shipped. The bundle does not describe any difference between the two paths. Part of the Solnix OPTIONS text for the lone '-' option is garbled in the bundle, but its meaning is clear from the description.

Differences

Compared withTopicWhat differs
FreeBSD, OpenBSD, NetBSDhow -P destinations are named and foundSolnix -P takes a printer or class name in atomic, URI-style (scheme://endpoint) or POSIX-style (server:destination) form. Destinations are looked up in the printers database via the name service switch. The BSD pages say only 'the queue associated with a specific printer'.
Source: Solnix lprm(1b) -P, DESCRIPTION (nsswitch.conf, printers.conf); FreeBSD/OpenBSD/NetBSD lprm(1) -P
FreeBSD, OpenBSD, NetBSDPRINTER environment variableFreeBSD, OpenBSD and NetBSD take the default printer from PRINTER when -P is absent. The Solnix page has no ENVIRONMENT section and does not document PRINTER. Pass -P explicitly in scripts.
Source: FreeBSD/OpenBSD/NetBSD lprm(1) ENVIRONMENT; Solnix lprm(1b) (no ENVIRONMENT section)
NetBSD-w maxwaitNetBSD lprm -w maxwait sets how long to wait for remote responses (default 300 seconds). The Solnix page documents no -w option.
Source: NetBSD lprm(1) SYNOPSIS, -w; Solnix lprm(1b) OPTIONS
FreeBSD, OpenBSD, NetBSDwho may remove which jobsOn Solnix, users can by default remove jobs only on the host that submitted them. A superuser setting user-equivalence=true in /etc/printers.conf on the print server lifts this. The BSD pages describe only login name plus submitting host as the owner, with no such setting.
Source: Solnix lprm(1b) NOTES; FreeBSD/OpenBSD/NetBSD lprm(1) DESCRIPTION
FreeBSD, OpenBSD, NetBSDdaemon handlingThe BSD lprm kills an active daemon if needed before removing spool files, then restarts it. The Solnix page does not describe this. It talks about print servers and IPP, not a local lpd.
Source: FreeBSD/OpenBSD/NetBSD lprm(1) DESCRIPTION (last paragraph); Solnix lprm(1b) DESCRIPTION, NOTES
FreeBSD, OpenBSD, NetBSDcancellation noticesSolnix NOTES say some print servers email job owners when a job is cancelled, and that notices cannot be disabled on a Solaris server. The BSD pages mention no notifications.
Source: Solnix lprm(1b) NOTES; FreeBSD/OpenBSD/NetBSD lprm(1)
FreeBSD, OpenBSD, NetBSDIPP authentication promptWhen IPP is in use and the remote print service requires authentication, Solnix lprm prompts for a passphrase. The BSD pages do not mention IPP or authentication prompts.
Source: Solnix lprm(1b) NOTES; FreeBSD/OpenBSD/NetBSD lprm(1)
FreeBSD, OpenBSD, NetBSDexit statusSolnix documents exit 0 on success and non-zero on error. The FreeBSD, OpenBSD and NetBSD pages have no EXIT STATUS section, so the manual does not say what they return.
Source: Solnix lprm(1b) EXIT STATUS; FreeBSD/OpenBSD/NetBSD lprm(1) (no EXIT STATUS section)
FreeBSD, OpenBSD, NetBSDknown race conditionThe BSD pages warn that lock-file race conditions may make lprm misidentify the currently active job. The Solnix page has no BUGS section and lists no such caveat.
Source: FreeBSD/OpenBSD/NetBSD lprm(1) BUGS; Solnix lprm(1b)

Standards

  • POSIX: lprm is not a POSIX.1-2024 utility.
  • Solnix: Interface Stability: Standard (ATTRIBUTES table in lprm(1b)).
  • FreeBSD: The page has no STANDARDS section; HISTORY says lprm appeared in 3.0BSD.
  • OpenBSD: The page has no STANDARDS section; HISTORY says lprm appeared in 3.0BSD.
  • NetBSD: The page has no STANDARDS section; HISTORY says lprm appeared in 3.0BSD.

Writing portable scripts

  • Use only -P name, a lone - and job numbers or user names. Set -P explicitly, because only the BSD pages document the PRINTER variable.
  • Get job numbers from lpq on each system before calling lprm, and do not depend on -w, which only NetBSD documents.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.