[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: upstart: please update to latest upstream version

"Bernhard R. Link" <brlink@debian.org> writes:
> * Russ Allbery <rra@debian.org> [120224 19:28]:

>> One of the primary features of newer init systems like upstart and
>> systemd is that they take care of the routine stuff automatically and
>> thereby reduce the conceptual surface of your init script equivalent.
>> Simpler things are inherently easier to debug; there are fewer
>> variables.

> It's just a much more complicated setup. Daemons like to all have their
> special little quirks. And starting or shutting down a system tends to
> belong to the most ugly things to debug. Also note that quite some
> functionality will be some C code especially the early and very late
> code, I guess, where debugability is the hardest.

I'm not sure what to say other than that I've written and analyzed both
init scripts and upstart scripts (not a lot of the latter yet but enough
to get the feel for it) and I completely disagree with this analysis.  I
think you are *massively* understating the complexity of init scripts
written in shell.

I've found and reported or fixed a substantial number of bugs in init
scripts in Debian over the years that would not have even been possible if
we had been using upstart or systemd.  We're currently carrying probably a
half-dozen replacements for init scripts in Debian packages in our Puppet
repository to fix bugs that we've uncovered that aren't fixed in the
current stable, and most of them are for dependency issues, daemon startup
mistakes, error handling problems, and other cases that would have just
been handled automatically and correctly by upstart and systemd.  Not to
mention all the work we are currently putting into maintaining daemontools
(and previously monit) scripts for services because init simply doesn't
offer the monitoring and automated restart features that we need.

I also maintain a bunch of packages that start system daemons of various
kinds, including some that do rather complicated things (such as load
kernel modules or ensure processes accessing particular file systems are
shut down).  I would *far* rather maintain those as upstart and systemd
scripts than in shell.

Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

Reply to: