Remix.run Logo
awestroke 3 days ago

An init system without the ability to specify dependencies? Without user/group configuration? Ordering must be manually configured? No parallel service launching? No resource management?

Please don't call this an init systern. It's a barebones process supervisor.

beagle3 3 days ago | parent [-]

It actually does all these things. Quite well, even - in my experience better than systemd.

I didn’t use nitro, I’ve been using daemontools (which nitro is an evolution of) for decades. Incredibly easy to use, incredibly stable, understand, and control.

There is no well defined way to do dependencies (what if your dependency dies 3 seconds into the process? There are many right answers). The djb/daemontools way is just “it’s your problem. But here are the reliable simple cheap tools to start, stop and monitor your dependencies”.

vhantz 3 days ago | parent [-]

What makes it better than systemd for you?

beagle3 2 days ago | parent [-]

It is lightweight, very easy to understand and reason about (much more than systemd - and it’s not just an issue of familiarity - it has much fewer moving parts than systemd’s service management part).

It’s rock solid. It goes to great length to never lose process output, not even a single char, across service restarts. (it might be possible to achieve same on systemd - but it isn’t trivial)

And it’s been that way for me for two decades now - Ubuntu moved from system v to upstart to systemd; my systems still use the same daemontools setup they used 15 years ago, they do it on FreeBSD and Linux. And they just work, no surprises.