On Jun 13, 2015, at 17:51 03, David Klann <dxkl...@gmail.com> wrote:

> But Fred, I take exception to your claim that the systemd "unit file"
> is more complex than the old init.d scripts. Why do you say that? On
> the laptop where I'm typing this the graphical display startup file
> for systemd is much simpler: 25 non-comment lines of "code", the
> equivalent script in the old init.d world is 193 non-comment lines of
> code. What am I missing about the complexity of systemd unit files?

I should have been more precise.  I agree that in terms of number of lines of 
code, the typical systemd script is significantly smaller that its 
corresponding init.d cousin.  Where it becomes much more complex (at least in 
my experience) is in the development process needed to arrive at that script.  
There are no tools available to give a developer transparency into what the 
boot system is doing and (crucially) in what order.  You have ‘events’, but no 
decent ontology of what events are emitted by what.  And what if the particular 
service that you must have running before you can run your widget has no event 
that it emits? (All too common a situation in my experience).  In short, 
systemd (and its cousin Upstart) lacks what Eric Raymond has called 
“discoverability”, the ability of a system not only to run well but to be 
*seen* to run well 
[http://www.catb.org/esr/writings/taoup/html/ch01s06.html#id2878054].

OTOH, every init script on a RHEL system is defined with a set of runlevels on 
which it will run, along with a specific ordinal number in the chkconfig header 
that determines the precise sequence it will be started in relation to all of 
the other boot services.  It’s quite easy to see by looking at the first few 
lines of any init script precisely when it will be executed.  It’s even 
possible to read the entire set of init scripts programmatically and generate a 
neat list of the precise sequence of the boot order.  The individual scripts 
are larger, but the global transparency of the system is such that it becomes 
much easier to see how it works (and hence, how to extend it to do what you 
need it to do).  That’s discoverability.

Now it’s certainly possible that, in some contexts, the admittedly faster boot 
times achievable with one of these event-driven boot systems is worth the 
tradeoff in terms of developer time and frustration.  My basic contention is 
that a Rivendell system is *not* one of those contexts; traditional init.d is a 
much better fit there.

Cheers!


|----------------------------------------------------------------------|
| Frederick F. Gleason, Jr. |              Chief Developer             |
|                           |              Paravel Systems             |
|----------------------------------------------------------------------|
|          A room without books is like a body without a soul.         |
|                                         -- Cicero                    |
|----------------------------------------------------------------------|

_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to