lpc(1b) on Solnix vs Linux and the BSDs
On Solnix, lpc is the illumos BSD-compatibility printer control program, run as /usr/bin/lpc (the page documents /usr/ucb/lpc). It controls local printers and queues much like the BSD lpc, but it reads illumos printers.conf names rather than /etc/printcap, and it omits the BSD bottomq, setstatus and tclean commands.
The manual pages
- Solnix: lpc(1b) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: lpc(8) 15.1-RELEASE
- OpenBSD: lpc(8) 8.0
- NetBSD: lpc(8) 11.0
What Solnix runs
A default Solnix system runs the illumos lpc at /usr/bin/lpc. The page is published as lpc(1b) by pkgs.solnix.illumos-world-man, and its SYNOPSIS shows /usr/ucb/lpc, which is also shipped. The bundle does not say how /usr/bin/lpc differs from /usr/ucb/lpc. The bundle has no Linux page for lpc, so no Linux comparison is made.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD, NetBSD | printer configuration source | Solnix lpc names printers as atomic names and points to printers.conf(5). FreeBSD, OpenBSD and NetBSD lpc act on printers configured in /etc/printcap.Source: Solnix lpc(1B) USAGE (status, abort) and SEE ALSO; FreeBSD lpc(8) DESCRIPTION; OpenBSD lpc(8) DESCRIPTION; NetBSD lpc(8) DESCRIPTION |
| FreeBSD | missing commands | The Solnix page documents no bottomq, setstatus or tclean command. FreeBSD lpc has all three: bottomq moves jobs to the bottom of the queue, setstatus changes the status message, and tclean is a dry run of clean. Source: FreeBSD lpc(8) bottomq, setstatus, tclean; Solnix lpc(1B) USAGE |
| FreeBSD | topq job selection | Solnix topq takes request IDs and user names. FreeBSD topq takes jobspecs: job numbers, ranges such as 21-32, user IDs, @host names and combinations such as jones:17@host. Source: Solnix lpc(1B) topq; FreeBSD lpc(8) topq and jobspec list |
| OpenBSD, NetBSD | topq syntax | Solnix topq is `topq printer[request-ID...] [user ...]`. OpenBSD and NetBSD use `topq printer [jobnum ...] [user ...]`. The argument form is the same in outline, but the Solnix page calls the job argument a request-ID. Source: Solnix lpc(1B) topq; OpenBSD lpc(8) topq; NetBSD lpc(8) topq |
| FreeBSD, OpenBSD, NetBSD | down and up and the status message | On Solnix, down inserts a message in the printer status file and up deletes it. The BSD pages describe up as 'enable everything and start a new printer daemon', and do not mention deleting the message. Source: Solnix lpc(1B) down, up; FreeBSD lpc(8) up; OpenBSD lpc(8) up; NetBSD lpc(8) up |
| FreeBSD, NetBSD | down message syntax | Solnix down takes optional printers and an optional message, with no -msg flag. FreeBSD requires -msg to separate several printers from the message. NetBSD's synopsis requires a message.Source: Solnix lpc(1B) down; FreeBSD lpc(8) down; NetBSD lpc(8) down |
| FreeBSD, OpenBSD, NetBSD | restart for super-user | On the BSDs, a super-user restart first tries to abort the current daemon, which kills and restarts a stuck one. The Solnix restart text only says it attempts to start a new daemon and does not describe this. Source: Solnix lpc(1B) restart; FreeBSD lpc(8) restart; OpenBSD lpc(8) restart; NetBSD lpc(8) restart |
| FreeBSD, OpenBSD, NetBSD | privilege split | The Solnix page says help, exit, quit and status are available to all users, and all other commands only to a super-user. The OpenBSD and NetBSD pages describe lpc as an administrator tool without listing unprivileged commands. FreeBSD says only that clean is privileged and tclean is not. Source: Solnix lpc(1B) USAGE; FreeBSD lpc(8) tclean; OpenBSD lpc(8) DESCRIPTION; NetBSD lpc(8) DESCRIPTION |
| FreeBSD | clean scope | Solnix clean removes files the print daemon created in the spool directory for the queue. FreeBSD clean removes unprintable temporary, data and control files, and also lists core files in the spool directory without removing them. Source: Solnix lpc(1B) clean; FreeBSD lpc(8) clean |
| FreeBSD, OpenBSD, NetBSD | daemon and service references; IPP | The Solnix page refers to lpsched(8), lpshut(8) and svcadm(8) and notes that over IPP the user may be prompted for a passphrase. OpenBSD and NetBSD point to lpd(8), and none of the BSD pages mention IPP. Source: Solnix lpc(1B) SEE ALSO, NOTES; OpenBSD lpc(8) SEE ALSO; NetBSD lpc(8) SEE ALSO |
| OpenBSD, NetBSD | exit status | The Solnix page documents exit 0 on success and non-zero on error. The OpenBSD and NetBSD pages in the bundle have no exit status section. Source: Solnix lpc(1B) EXIT STATUS; OpenBSD lpc(8); NetBSD lpc(8) |
Standards
- POSIX: lpc is not a POSIX.1-2024 utility.
- Solnix: ATTRIBUTES: Interface Stability is Standard.
- OpenBSD: HISTORY: the lpc command appeared in 4.2BSD.
- NetBSD: HISTORY: the lpc command appeared in 4.2BSD.
Writing portable scripts
- Use only the commands all four systems document (help, exit, quit, status, abort, clean, disable, enable, restart, start, stop, topq, up, down) and pass the message to down as plain trailing words for a single printer.
- Do not assume
/etc/printcapexists or that printer names are the same on Solnix, which uses printers.conf(5) atomic names. Take printer names from the local configuration.
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.