schmonz.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
have my program reread the file in response to a received signal.
There are a lot of arguments on the #s6 channel about the merits and demerits of SIGHUP-based configuration rereading. They're fun. My position is that SIGHUP (or equivalent) is fine, not ideal, but usable. Some heartily disagree. 😅
I'm kind of surprised no one has implemented a half-assed user-space
keventlibrary for Linux 😜
Please no. Don't give anyone ideas. kevent is terrible for portability. It's an extensive API: any newly supported feature needs a modification to the system call and a new macros, so testing for the exact set of features supported by any version of kevent is a nightmare. You need autoconf levels of boilerplate in order to be certain of what exactly your kevent is capable of.
The only reason why kevent is viable for the BSDs is that the BSDs are tightly integrated systems and their software is generally written for BSDs (and does not care about anyone else), so it can assume a lot and it doesn't matter if it doesn't work on previous versions. But that property does not extend to other systems.
The secret is Bernstein chainloading. As long as there is Bernstein chainloading tooling that does the requisite process state manipulation, then systems like #s6, #nosh, and even #runit and #daemontools-encore have what they need.
jexec does that.
Which is why our way is better. If there's something that only one platform has, then as long as that platform has a chainloading tool for it, that tool can be mixed in.
e.g. ionice and chrt on Linux, and rtprio on FreeBSD.
You know that @ska and I are both on the FediVerse, right?
Laurent's #s6 expertise is obvious. We can both explain the difference between actually managing a system as process 1 and a service supervisor which does not need to be process 1. Both of our softwares run on Linux and so we can both tell you that all of that worry about process 1 inheriting console ofds is a red herring, and that you likewise missed a couple of things.
And I know the name TIOCCONS. (-:
Let's see how this setup pans out: https://schmonz.com/2025/04/15/sensible-basic-minecraft-hosting/