Ninit: Minit on steroids
Ah, maybe I have found "the one"!
As I lamented in the previous blog post, I found the service managers derived from daemontools to be very restricted:
http://bkhome.org/news/201802/thinking-about-service-managers.html
Minit is one of them:
Ninit was forked from Minit, by Nikola Vladov, and considerable
thought has gone into extending the usefulness. Dependency options are
now looking very good.
Minit and Ninit are both intended to be compiled statically with
dietlibc, and I have done that. Host is Quirky Xerus64 8.4, which has
dietlibc in the "devx" PET.
A quick note on how to compile Ninit. I edited the 'Makefile', set "DIET=/usr/bin/diet", and had to create a symlink:
# ln -s lib /usr/lib/diet/lib-x86_64
# make
# make install
Back in the mists of time (2012 actually), I created a PET for Minit:
http://distro.ibiblio.org/puppylinux/pet_packages-common/minit-0.10-i486.pet
http://distro.ibiblio.org/puppylinux/pet_packages-common/minit_DOC-0.10-i486.pet
It has etc/minit, which which is a quick hack to make Minit work in an unchanged Puppy. It sets up a replacement for /etc/inittab and runs the usual /etc/rc.d/rc.sysinit.
I copied etc/minit/* to /etc/ninit/. Then inserted "init=/sbin/ninit" into the kernel boot parameters, then rebooted. Hey, it's working, back at the usual desktop!
Now, about Ninit. It is a dead project, however has been preserved here:
https://gitlab.com/notklaatu/ninit
If you download this, it is version 0.14.
More info is here:
http://without-systemd.org/wiki/index.php/Ninit_instructions