:: Re: [DNG] What is your take on fini…
Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Steve Litt
Ημερομηνία:  
Προς: dng
Αντικείμενο: Re: [DNG] What is your take on finit?
Syeed Ali said on Thu, 27 Jan 2022 03:52:34 -0800

>On Wed, 26 Jan 2022 08:59:24 +0100
>Martin Steigerwald <martin@???> wrote:
>
>> I saw this coming into Debian Sid, so should be available in Devuan
>> Ceres as well:
>>
>> https://troglobit.com/projects/finit/
>
>I'm going to hazard the guess that this will be lined up in the same
>way that Microsoft propped up Apple so they can point to a "competitor"
>and say "see, we're not a monopoly!".


What Syeed sounds reasonable.

I read the docs at https://troglobit.com/projects/finit/ , and have
some opinions technically...

* It's better than systemd and sysvinit, which is faint praise.

* It's better at mixing long-runs and do-once than runit (but not s6)

* Each line of the config is kinda complicated, so you'd better have a
cheat sheet when configuring.

* It requires each daemon to background itself. Ewwwwww, gross!

About self-backgrounding daemons...

Requiring daemons to self-background is very bad because it makes
daemon supervision very hard because they depend on a PID file which
could get erased or overwritten or whatever. You can have much better
control over a daemon the way runit, s6 and daemontools do it: run the
daemon in the foreground.

Ideally your init should have a choice between self-backgrounding
daemons and the superior foreground daemons. Systemd has that choice,
and runit, s6 and daemontools all have a kludge that usually can run
backgrounded daemons. Please keep in mind that intelligently created
daemons that background themselves have a command line option to run in
the foreground --- only a tiny minority (cough, cough, httpd) have no
option to prevent self-backgrounding.

Ability to run foreground daemons is a huge asset when you make your
own daemons. Any C, Python, Perl, Ruby, Lua, Java, PHP, C++, Pascal,
bash, /bin/sh, or pretty much any other program that loops forever
doing its job can be made into a daemon by an init that accepts
foreground daemons. This is revolutionary, because it means the daemon
author no longer needs to write the (non-trivial) self-backgrounding
code. I have several home-made no-backgrounding daemons running, and
those wouldn't be possible with finit.

So Syeed, the cynical part of me thinks not only that you're right, but
they picked a real dog of an init system to compete with systemd,
because if they picked runit or s6, systemd would be out-competed.

SteveT

Steve Litt
Spring 2021 featured book: Troubleshooting Techniques of the Successful
Technologist http://www.troubleshooters.com/techniques