qpsmtpd-prefork(8)

πŸ’– qpsmtpd-prefork β€” the girlies' guide to the preforkin server for qpsmtpd πŸ’–

okay so bestie, welcome to qpsmtpd-prefork(8), straight outta the System Manager's Manual. this is the page for the qpsmtpd frontend script that's out here doing the absolute most so your mail server never has to wait. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

qpsmtpd-prefork β€” the preforkin server for qpsmtpd. yes it really says "preforkin" in the title, and honestly? iconic. we keep it.


🌸 SYNOPSIS 🌸

qpsmtpd-prefork [options]

that's it. that's the whole vibe. just the command and whatever options your heart desires. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so qpsmtpd-prefork is the qpsmtpd frontend script. it's the one that:

  • binds to the SMTP TCP socket β€” like, it's the one actually holding the door open for incoming mail
  • asynchronously forks new children in advance of new connections β€” meaning it's already got workers ready and waiting before anyone even knocks. main character energy, fr fr. no cap, it is literally pre-gaming the connections. πŸ‘‘

πŸ’… OPTIONS πŸ’…

every single flag, no skips, no summarising, we're thorough in this house:

  • --port port β€” binds to a specific port instead of the default 2525. so if 2525 isn't your thing, say the word.
  • --user user β€” on startup, switch to run as user instead of the starting user. this one only applies when you started as root (which, btw, is the normal situation when you're listening on port 25). root-only behaviour, iykyk.
  • --limit-connections limit β€” accept at most limit simultaneous connections. anything inbound past that limit gets deferred or refused β€” the door's just full, sorry babe.
  • --max-from-ip limit β€” accept at most limit simultaneous connections from any single given IP address. important: this does not override --limit-connections if that's also set. they're both doing their own thing.
  • --children limit β€” cap the total number of child processes at limit. once every child is busy handling requests, further connections get deferred. everyone's booked, bestie.
  • --idle-children count β€” keep count child processes available, subject to the upper bound you gave via --children. specify 0 to disable preforking entirely. zero means off, no preforking, we're done here.
  • --interface addr β€” bind to the local address addr, instead of the default behaviour of binding to all interfaces. and yes, you can specify this multiple times to bind to more than one interface or local address. multitasking queen.
  • --renice-parent delta β€” adjust the priority of the parent process by delta, so it yields more CPU time to other processes. the default is 5. she's generous like that.
  • --detach β€” detach from the controlling terminal at startup so it can run as a standalone daemon. see also --pid-file (they're besties).
  • --pid-file filename β€” upon startup, and after daemonizing if applicable, write the process ID to filename. this is for sysvinit control scripts or similar utilities to find it later. 🫢
  • --pretty-child β€” update child process names within the process table. she wants to look cute in ps, and honestly? respect.
  • --version β€” print the qpsmtpd release version and exit. quick lil flex.
  • --debug β€” be somewhat more verbose about logging during startup. note: this has no effect once fully started. it's a startup-only moment.
  • --help β€” display commandline help and exit. the classic.

πŸ‘‘ AUTHOR πŸ‘‘


πŸ’€ also quick vibe check: this page is qpsmtpd-prefork(8) from the System Manager's Manual, and that's exactly what's sitting down there in the footer too. so like, we've come full circle. periodt. πŸŽ€

hope that was giving what it needed to give. go forth and prefork responsibly, bestie. πŸ’–βœ¨πŸ¦‹πŸŒΈπŸ«Ά