P910ND(8)

πŸ“¦
version 0.97 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– P910ND(8) β€” port 9100+n printer daemon πŸ’–

okay so bestie, you're looking at the manual page for p910nd, from the System Manager's Manual section 8 (that's the sysadmin-y one, iykyk). she's small, she's efficient, she's literally just a printer daemon and she eats πŸ’…


✨ NAME ✨

p910nd β€” port 9100+n printer daemon πŸ–¨οΈ


🌸 SYNOPSIS 🌸

p910nd [-f device] [-i bindaddr] [-bvd] [0|1|2]

πŸŽ€ DESCRIPTION πŸŽ€

So p910nd is this tiny lil daemon that takes whatever data shows up on the port it's listening on and copies it straight over to the matching printer port. that's it. that's the whole job. main character energy, minimal effort, no cap ✨

She's primarily meant for diskless Linux hosts that are running as printer drivers, but honestly there's no reason she couldn't run on a diskful host too. no gatekeeping here πŸ’–

Here's the mapping, memorize it:

  • Port 9100 β†’ /dev/lp0
  • Port 9101 β†’ /dev/lp1
  • Port 9102 β†’ /dev/lp2

And the default is port 9100 to /dev/lp0. yes queen, defaults matter 🫢

Now the options, one at a time:

  • The -f option can be used to specify a different printer device, like /dev/usblp0. πŸ¦‹
  • The -i option can be used to specify binding to one address instead of all interfaces β€” and all interfaces is the default.
  • The -b option turns on bidirectional copying. πŸ”
  • The -v option shows the version number. ⭐
  • The -d option causes the daemon to run in the foreground in standalone mode and prints log messages to stdout for debugging. (debugging era πŸ™ˆ)

🌈 INSTALLATION 🌈

p910nd can run as a standalone daemon or from (x)inetd. and get this β€” she'll automatically detect if she's running under (x)inetd. self-aware icon behavior πŸ’…

A sample SysVinit script, p910nd.sh, is provided for operation as a daemon. also, p910nd will change its name under ps to match the printer port, so you'll see p9100d, p9101d and p9102d. she's doing a little cosplay, let her cook πŸŽ€

under (x)inetd

When running under (x)inetd, the /etc/inetd.conf entry should look something like this (with tcpwrappers protection):

p9101 stream tcp nowait root /usr/sbin/tcpd /sbin/p910nd

Don't forget to add an entry in /etc/services for the corresponding port. fr fr, people always forget this one 😭

working with lprng

If operating with lprng, use the host%port syntax for the printer device to send jobs to it.

working with CUPS

If operating with CUPS, this is supported as the AppSocket protocol, also known as the JetDirect (probably TM) protocol. ✨

working with classic Berkeley lpd

If operating with classic Berkeley lpd, a sample client, client.pl, is provided. This should be installed as the ifilter (if=) in /etc/printcap. And banner.pl should be installed as the ofilter (of=) in /etc/printcap. It may be necessary to create a dummy spool file for lpd (lp=). This file will be opened but not written to. The corresponding C versions are left as an exercise for the reader. (not me making you do homework πŸ’€)

multiple instances warning

When running under inetd, more than one instance could be started. To avoid problems with multiple instances attempting to access the printer at the same time, make sure that only one client is active at any one time. This can be done by designating one host as the spooler and sending all jobs to this host. You will probably need to set up an intermediate queue anyway to provide print job filtering.

built with USE_WRAP

If built with USE_WRAP, it uses the libwrap library (tcpwrappers). Access control can be done with /etc/hosts.allow and /etc/hosts.deny. The service name is p910nd. πŸ›‘οΈ


πŸ‘‘ DIAGNOSTICS πŸ‘‘

p910nd logs error messages to syslog. that's the whole vibe check on errors πŸ“‹


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ’œ FILES πŸ’œ

  • /var/run/p9100d.pid
  • /var/lock/p910nd/p9100d
  • /etc/hosts.allow
  • /etc/hosts.deny

p910nd is under the GNU Public License Version 2. periodt.


πŸ’Œ AUTHOR πŸ’Œ

Ken Yap (greenpossum ATSIGN users PERIOD sourceforge PERIOD net) β€” putting in the work so we don't have to, we love to see it 🫢


πŸ—“οΈ DATE πŸ—“οΈ

Version 0.97 January 2014. yes she's a 2014 girlie and she still slays 🌸


okay that's the whole page bestie, you're officially a p910nd expert now, go print something iconic πŸ–¨οΈπŸ’–

signing off from the System Manager's Manual, dated 16 January 2014, version 0.97 β€” mwah πŸ’‹

πŸ“¦ where this page comes from