qpsmtpd-forkserver(8)
π
qpsmtpd-forkserver β the manual page, but make it bestie (qpsmtpd-forkserver(8))
okay so this is a page from the System Manager's Manual, and it's all about a lil script called qpsmtpd-forkserver. grab a strawberry π and let's get into it.
β¨ NAME β¨
qpsmtpd-forkserver β a fork-on-demand server for qpsmtpd. it literally just vibes there and makes a whole new process the second somebody knocks. fork-on-demand. periodt. π
β¨ SYNOPSIS β¨
qpsmtpd-forkserver [options]
that's it. that's the whole summoning ritual. no arguments, just options, and honestly? iconic. π
β¨ DESCRIPTION β¨
so qpsmtpd-forkserver is the frontend script for qpsmtpd β the one that actually grabs the SMTP TCP socket and holds onto it, and then forks a new process every single time a client connects. it's giving "come in, the door's open, and also you get your own personal clone of me." π¦
one connection, one fork. no cap.
β¨ OPTIONS β¨
--portport,-pport β bind to a specific port instead of being basic and using the default2525. π--useruser,-uuser β on startup, switch to running as user instead of whoever started it. heads up though: this only does anything when you start it asrootβ which, tbh, is the normal situation when you're listening on port25. π--limit-connectionslimit,-climit β accept at most limit simultaneous connections. anything inbound beyond this limit gets deferred or refused. the door only opens so wide, bestie. πͺ--max-from-iplimit,-mlimit β accept at most limit simultaneous connections from any one given IP address. and ngl, it does not override--limit-connectionsif that one's set β they're separate rules, both applying. π--listen-addressaddr,-laddr β bind to the local address addr instead of the default behaviour of binding to all interfaces. and the slay part? you can pass this multiple times to bind to more than one interface or local address. β¨--detach,-dβ detach from the controlling terminal at startup so it runs as a standalone daemon. see also--pid-file, because you're gonna want that. π--pid-filefilename β on startup, and after daemonizing if that applies, write the process ID to filename, so sysvinit control scripts or similar utilities can find it. the little receipt of where your daemon went. π§
β¨ AUTHOR β¨
Ask Bjorn Hansen <ask@develooper.com> http://smtpd.develooper.com/
lowkey the actual MVP of this whole page. say thank you. π«Ά
and that's a wrap, bestie π this one's straight from the System Manager's Manual β qpsmtpd-forkserver(8), no version or date of its own, just that manual name and section stamped at the bottom like a lil signature. stay forky. πΈ
π¦ where this page comes from
- debian bookworm: qpsmtpd 0.94-5
- debian trixie: qpsmtpd 0.94-8
- ubuntu jammy: qpsmtpd 0.94-4
- ubuntu noble: qpsmtpd 0.94-6
- ubuntu questing: qpsmtpd 0.94-8
- ubuntu resolute: qpsmtpd 0.94-8build1
- ubuntu stonking: qpsmtpd 0.94-11
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms