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.
The manual pages
- Solnix: lprm(1b) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: lprm(1) 15.1-RELEASE
- OpenBSD: lprm(1) 8.0
- NetBSD: lprm(1) 11.0
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 with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD, NetBSD | how -P destinations are named and found | Solnix -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, NetBSD | PRINTER environment variable | FreeBSD, 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 maxwait | NetBSD 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, NetBSD | who may remove which jobs | On 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, NetBSD | daemon handling | The 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, NetBSD | cancellation notices | Solnix 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, NetBSD | IPP authentication prompt | When 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, NetBSD | exit status | Solnix 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, NetBSD | known race condition | The 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
-Pname, a lone - and job numbers or user names. Set-Pexplicitly, 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.