SMBSPOOL(8)

πŸ’– SMBSPOOL β€” the lil' print spooler that yeets your file to an SMB printer πŸ’–

okay bestie, welcome to smbspool(8) β€” yes, section 8, the system administration girlies. this is the manual page and i'm gonna walk you through it like we're texting at 2am πŸ¦‹

✨ NAME ✨

smbspool β€” send a print file to an SMB printer πŸ–¨οΈβœ¨

✨ SYNOPSIS ✨

smbspool {job} {user} {title} {copies} {options} [filename]

✨ DESCRIPTION ✨

so this tool is part of the samba(7) suite, iykyk πŸ’…

smbspool is a very small print spooling program that sends a print file to an SMB printer. it's giving tiny but mighty, no cap 🧚

here's the tea though: the command-line arguments are position-dependent for compatibility with the Common UNIX Printing System β€” so like, do not shuffle them, bestie, they know their seats and they're staying in them 😭 β€” but you can use smbspool with any printing system or from a program or script. flexible queen πŸ‘‘


🌈 DEVICE URI 🌈

smbspool figures out its destination using a Uniform Resource Identifier ("URI") with a method of "smb". this string can take a number of forms:

  • smb://server[:port]/printer
  • smb://workgroup/server[:port]/printer
  • smb://username:password@server[:port]/printer
  • smb://username:password@workgroup/server[:port]/printer

smbspool tries to get the URI from the environment variable DEVICE_URI. if DEVICE_URI is not present, smbspool will use argv[0] if that starts with β€œsmb://” or argv[1] if that is not the case. lowkey iconic how it just sniffs around for it πŸ”

programs using the exec(2) functions can pass the URI in argv[0], while shell scripts must set the DEVICE_URI environment variable prior to running smbspool. yes, must. the shell script girlies don't get the argv[0] shortcut, sorry babe πŸŽ€

✨ OPTIONS ✨

  • job (that's argv[1]) β€” contains the job ID number and is presently not used by smbspool. it's literally just vibing there πŸ™ˆ
  • user (that's argv[2]) β€” contains the print user's name and is presently not used by smbspool except in Kerberos environments to access the user's ticket cache. so like, mostly decorative but it has one (1) job in Kerberos-land πŸ’œ
  • title (that's argv[3]) β€” contains the job title string and is passed as the remote file name when sending the print job. main character energy, it actually gets used ⭐
  • copies (that's argv[4]) β€” contains the number of copies to be printed of the named file. but bestie, if no filename is provided then this argument is not used by smbspool. so no filename = copies does nothing 😭
  • options (that's argv[5]) β€” contains the print options in a single string and is currently not used by smbspool. slay, a whole argument for nothing πŸ’€
  • filename (that's argv[6]) β€” contains the name of the file to print. if this argument is not specified then the print file is read from the standard input. classic stdin behaviour, we love her 🫢
heads up bestie: those first five are all positional. argv[1] through argv[6], in that exact order, periodt. don't reorder them or it's over πŸ’…

✨ VERSION ✨

this man page is part of version 4.24.7 of the Samba suite.

✨ SEE ALSO ✨

smbd(8) and samba(7) 🌸

✨ AUTHOR ✨

smbspool was written by Michael Sweet at Easy Software Products. ✨

the original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed. the way that the whole kernel-style dev model got adopted here? iconic πŸ‘‘


okay that's the whole page, you ate that πŸ“ go forth and print, bestie πŸ’–

signing off β€” this was Samba 4.24.7, dated 09/09/2026, and yes it's still giving SMBSPOOL(8) energy πŸŽ€

πŸ“¦ where this page comes from