On Thu, 21 Jan 2016 17:02:46 +0000
Rainer Weikusat <rainerweikusat@???> wrote:
> Continue the fine practice of uniformly starting and stopping
> everything at a default policy of "20", IOW, in parallell. Software
> is supposed to solve technical problems, not to work around people's
> mental deficiencies (such as the inability to understand that 'X was
> true a second ago' doesn't imply anything about 'X' right now or at
> any other time in future).
[snip]
> > * A separate new file containing the LSB definitions - which to a
> > certain extent is just adding more cruft, but in a separate file.
>
> I consider this a much better idea for implementing such a system.
I'm writing the following *only* from a Runit point of view...
I've been initting exclusively with Runit for the past 3 months, and
have obtained a viewpoint during that time. Things that seemed like
earthshaking priorities before initting with Runit dissolved into
needless worries, at least in my use case.
First, about LSB: I haven't needed it at all while initting from Runit.
Your start code goes in the ./run script, and if you have to do
something special when stopping, which you usually don't, that code
goes in the ./finish script. There's no restart code: restart is simply
sv down myprocess;sv up myprocess, and any finish script and the run
script get run at the appropriate time.
LSB's provides, requires, required_by, before, after, etc is pure
genius: I should have thought of it. But my three months of using Runit
indicates that it's not really necessary with Runit, even though
Runit instantiates respawning processes in undefined and probably random
order.
Nevertheless, I've found Runit boots to be perfectly determinate, with
no problem created when one process requires another process to be
already running. Nevertheless, if such a problem ever did occur, it
would be trivial to add a few lines of shellscript in the ./run script
of the process that required a previously running process.
In other words, from my experience with Runit, over 95% of our
discussions about dependency, and when to declare a depended-upon
process actually running, and how a daemon can notify its init system
that it's now functional, is purely academic.
This is one of the reasons that Runit ./run scripts are so short and
understandable.
SteveT
Steve Litt
January 2016 featured book: Twenty Eight Tales of Troubleshooting
http://www.troubleshooters.com/28