rlprm(1)
๐ธ NAME ๐ธ
rlprm โ remove jobs from a remote line printer spooling queue ๐จ๏ธโจ๐
okay bestie, if you've ever hit "print" on a remote printer and then immediately regretted every life choice that led you there, this is the page for you ๐ซถ
๐ SYNOPSIS ๐
rlprm [-qNV] [-Hprinthost] [-Pprinter] [-Xproxyhost] [--debug]
[--timeout=seconds] [--port=port] [-] [ job # ... ] [ username ... ]
โจ DESCRIPTION โจ
rlprm uses TCP/IP to remove jobs you own from printers anywhere on a network ๐. Like, anywhere. No cap.
Unlike lprm, it does not require that the remote printers be explicitly known to the local system (traditionally through /etc/printcap), and thus is considerably more flexible and requires less administration. it's giving "no setup, just vibes" and honestly? we love that for you ๐
rlprm can be used anywhere a traditional lprm might be used, and is backwards compatible with traditional BSD lprm ๐ฅ. If rlprm is invoked as lprm, it preserves all known lprm semantics, with the exceptions of those semantics mentioned in BUGS / LIMITATIONS below ๐ (yes queen, read the fine print).
rlprm can be set up, installed, and used in the same two ways as rlpr(1) โ that is, either with or without the rlprd(8) proxy daemon ๐ง. Please see rlpr(1) for details, and to see whether you will need to use the rlprd(8) proxy daemon or not. go check, bestie, it's important ๐ซถ
๐ OPTIONS ๐
๐ Environment/Setup ๐
--debugโ Print gobs of debugging information ๐. like, gobs. absolutely unhinged amounts of text. it's giving detective mode ๐-N,--no-bindโ Don't try to bind to a privileged port before connecting tolpd๐ โโ๏ธ. Please see the CONFIGURING A PROXY section inrlpr(1)for information on use of this option.--port=numberโ Select an alternate port (instead of7290) to connect to, if usingrlprd๐. Usually not needed. fr fr, you probably don't need this one.-H,--printhost=hostโ Select the host to print to (used with-P) ๐ฎ.
Instead of using -H, one can specify the hostname directly by including it with the printer name with the printer@hostname syntax โจ. two ways to do the same thing, pick your fighter ๐
-P,--printer=printername,--queue=printernameโ Select the printer to print to (used with-H) ๐จ๏ธ.-X,--proxy=proxyhost,--proxyhost=proxyhostโ Select the proxy host to use, if necessary ๐.--timeout=secondsโ Set the inactivity timer โฑ๏ธ. If the connection hangs for more than seconds seconds, thenrlprmwill give up. Use the special value-1to wait forever ๐. Default timeout is 3 seconds. three!! she is impatient and honestly same.-V,--versionโ Print version and exit ๐. short, sweet, iconic.
๐ฆ Behavior ๐ฆ
-โ Remove all of your jobs ๐งน. Note that this option must be specified immediately following the end of all other options โ ๏ธ. This option is a mutant supported only for compatibility ๐. Instead of using this, include your username as the first argument torlprm.-q,--quiet,--silentโ Quiet mode โ stay quiet (except for fatal errors) ๐คซ. See BUGS / LIMITATIONS for problems usingrlprmin silent-mode operation ๐ (spoiler: she cannot tell you if it worked, and that's a whole thing).
๐ฑ ENVIRONMENT VARIABLES ๐ฑ
The following environment variables are used by rlprm:
RLPR_PRINTHOSTโ Specifies the default host's queue to remove jobs from ๐ .PRINTERorLPDESTโ Specifies the default printer to remove jobs from on the host ๐จ๏ธ. FirstPRINTERis consulted, thenLPDEST. order matters, bestie, it's a whole hierarchy ๐
Note that one can also specify the host to examine by setting printer to be printer@hostname ๐. This may be more convenient than setting RLPR_PRINTHOST, but will confuse the traditional BSD print commands ๐ญ.
RLPR_PROXYHOSTโ Specifies a proxy host to use, if necessary ๐.
๐ FILES ๐
~/.rlprrcโ Personal printer/host database ๐/etc/hosts.lpdโ Host-based security on printhost ๐/etc/hosts.equivโ Host-based security on printhost ๐/etc/passwdโ Personal identification ๐ชช/etc/rlprrcโ System-wide printer/host database ๐
๐ SEE ALSO ๐
rlpr(1), rlpq(1), rlprd(8), rlprrc(5) โ the whole friend group ๐ซถ go read them, they're all slaying.
๐ AUTHOR ๐
meem <meem@gnu.org> โ the icon, the legend, the one who wrote the manual page ๐๐
๐ BUGS / LIMITATIONS ๐
- Due to limitations in the current
lpdprotocol, it is not currently possible to tell whether or not the job removal succeeded when operating in silent mode ๐ญ. like she did something, but did she? nobody knows. - Due to limitations in the current
lpdprotocol, it is not currently possible to emulate the superuser semantics for the-option ๐. Instead, only root's jobs are removed. - Due to general niavete in the
lpdprotocol,rlprm(1)provides a lot of room for misbehavior ๐ฌ; it is trivial to imagine how it can be used to remove jobs that do not belong to you. Unfortunately, any security added at this point is just sugar-coating ๐ฌ โ the underlying protocol is flawed.
โ ๏ธ real talk bestie: this is a genuine security caveat from the original page, not me being dramatic. the protocol itself is the problem. keep that in mind.
and that's the whole page!! this was rlpr version 2.04, dated 1999/10/28 ๐โจ โ yeah, she's vintage, she's a classic, and she still works. periodt ๐ ๐๐ฆ
๐ฆ where this page comes from
- debian bookworm: rlpr 2.05-5+b2
- debian trixie: rlpr 2.06-2 ยท GPL-1.0-or-later
- ubuntu jammy: rlpr 2.05-5
- ubuntu noble: rlpr 2.06-2build1 ยท GPL-1.0-or-later
- ubuntu questing: rlpr 2.06-3
- ubuntu resolute: rlpr 2.06-3build1 ยท GPL-1.0-or-later
- ubuntu stonking: rlpr 2.06-3build1 ยท GPL-1.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms