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 to lpd ๐Ÿ™…โ€โ™€๏ธ. Please see the CONFIGURING A PROXY section in rlpr(1) for information on use of this option.
  • --port=number โ€” Select an alternate port (instead of 7290) to connect to, if using rlprd ๐ŸŒŸ. 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, then rlprm will give up. Use the special value -1 to 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 to rlprm.
  • -q, --quiet, --silent โ€” Quiet mode โ€” stay quiet (except for fatal errors) ๐Ÿคซ. See BUGS / LIMITATIONS for problems using rlprm in 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 ๐Ÿ .
  • PRINTER or LPDEST โ€” Specifies the default printer to remove jobs from on the host ๐Ÿ–จ๏ธ. First PRINTER is consulted, then LPDEST. 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 lpd protocol, 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 lpd protocol, 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 lpd protocol, 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 ๐Ÿ’…๐Ÿ’–๐Ÿฆ‹