I use mount for this with some call-backs via signal to register call-backs for system signals. I like the mention of clojure’s core asynchronous processes (futures, agents, core.async) and why they are more sane to use than say utilizing the ExecutorService yourself or some other more “native” solution. I have used other threading methodologies with some success though, mostly with claypoole, although I have started using only core.async for most things now though.
If anyone wants to read: https://webcache.googleusercontent.com/search?q=cache:http://9front.org/press/sdtimes/sdtimes.log
“I have an init system. It does a lot of what systemd does.”
“What advantages does it have over other init systems?”
“It’s not called systemd!”
Haha - I think that might be some of the hype, but I do think that there’s merit in the fact that they used a language that’s proven (Scheme/Guile) and easy to parse unlike the custom configuration formats that systemd chose. There’s a lot of power there. I welcome the coming init wars, competition is good.