Native upstart scripts

Jacek Konieczny jajcus at jajcus.net
Wed May 5 12:31:55 CEST 2010


On Wed, May 05, 2010 at 11:20:30AM +0200, Patryk Zawadzki wrote:
> On Tue, May 4, 2010 at 11:17 AM, Jacek Konieczny <jajcus at jajcus.net> wrote:
> > In PLD Th, we have upstart as the /sbin/init daemon for some time, but
> > it is only used to start the old 'SysVinit' scripts from
> > /etc/rc.d/init.d. To make full use of Upstart features, like process
> > supervising, parallel start, etc. we should find a way to include
> > Upstart support in our packages. Though, we should not replace the
> > current, working solution.
> 
> BTW: http://0pointer.de/blog/projects/systemd.html

Great. This fixes some problems of Upstart… but…

This would look great to me if I haven't seen several other „great
SysVinit replacements”. All of them were much better than SysVinit and
even had some „working implementations”. Often long before the Upstart
came up. And everybody have been still using SysVinit.

Upstart is the only one which caught on. It is terrible, with its
big incompatibilities between each version… poor documentation (at least
on the web), impractical event system. Nevertheless it is still much
better than SysVinit with the pile of shell scripts starting daemons
doing anything not to be managed (double-forking, etc.).

Unfortunately /sbin/init is so critical, that we cannot even experiment
much, especially with something no one else uses. And it is hard to have
multiple /sbin/init implementation side by side in one distribution.
They all differ too much not only in the configuration file formats but
in the whole philosophy of the configuration (not only „how to describe
a service configuration” but even „what is a service configuration”). 

One could think of making some kind of an abstraction layer, like our
rc-inetd, but that is a very bad idea. We would probably lose most of
the advantages of each init implementation then.

We should rather think how can we provided a few very different
configuration items, each for a different init implementation, with one
package. I am losing my enthusiasm about implementing the „native
upstart support” in PLD when I think systemd may eventually mature
enough and we would need to start from the beginning…

And I need a good init system now. Currently I use SysVinit +
daemontools in my PLD-based project. It generally works, but is not
elegant nor optimal. Even upstart, when properly deployed, would be
better and systemd could be much better, but I guess it is a matter of
future. 

Pozdrowienia,
        Jacek


More information about the pld-devel-en mailing list