FWIW, finit is an active example of a minimal, plugin-based init(8).
That said, of course this can exist. Plenty of PID1 replacements that
are largely agnostic of everything you listed. Handling stages 1 and 3
may need some additions to conditional logic, however. Introducing
shared objects in this would be overkill though, unless you're using the
word "plugin" to mean a script using a common interface.
On 06/22/2015 06:01 PM, Avery Payne wrote:
I have this crazy dream. I dream that, for supervision-styled
frameworks, there will be a unified init sequence.
* It will not matter what supervision framework you use. All of them
will start properly after the init sequence completes.
* It will not matter how sophisticated your supervision is. It is
independent of the features that are provided by the framework.
* It will not matter if you only have process supervision, or if you
have something that manages system state fully. They are independent
of the init start-up/shutdown.
* It will be scripted in a minimal fashion. Each stage of the init
would be a "plugin" called by a "master script". The plugins would be
straight-forward, so you could debug it easily.
* It will not matter if you are on Linux or *BSD anymore; the proper
low-level initialization will take place. All that would happen is a
different plugin would be called.
* It would have a system-specific plugin for handling emergencies, so
if the init fails, you drop into a shell, or reboot, or hang, or do
whatever it is your heart desires.
I'm really trying to figure out why this can't exist. What am I
missing (beyond the shutdown portion)? I know there will be the whole
BSD rc-scripts / SysV rc-scripts / OpenRC debate, I'm trying to avoid
any of those. I've used BSD-styled scripts years ago on Slackware,
and have dealth with SysV's crufty stuff recently. I haven't tried
OpenRC yet.