On 4/28/2015 11:34 AM, Laurent Bercot wrote:

I'm also interested in Avery's experience with dependency handling.

Hm. Today isn't the best day to write this (having been up since 4am) but I'll try to digest all the little bits and pieces into something. Here we go...

First, I will qualify a few things. The project's scope is, compared to a lot of the discussion on the mailing list, and especially in regard to s6-rc and anopa, very narrow. There are several goals but the primary thrust of the project is to create a generic, universal set of service definitions that could be plugged into any init, distribution, and supervision framework arrangement. That's a tall order in itself, but there are ways around a lot of this.

With regard to init work, I don't touch it. Period. Trying to describe a proper init sequence is already well beyond the scope of the project; and everyone has their own needs. Compound this with things like, oh, the differences between Linux and FreeBSD starting up, and you have plenty of headache to go around. So my work around for this is to completely avoid it; I'm leaving that to other implementers.

With regard to distributions, well, I'm trying to make it as generic as possible. Development is done on a Debian 7 box but I have tried to make every effort to avoid any Debian-isms in the actual project itself. In theory, you should be able to use the scripts on any distribution, and not just Debian.

With regard to the supervision programs used, this was the tricky one. While daemontools, runit, and s6 all have ./run, ./finish, and ./check, there's differences in the commands, signals, and capabilities involved. So unless I want to write a bunch of case statements in a shell script for each time I touch a command, this is a problem. Fortunately, both runit and s6 have emulation of daemontools commands. You create a symlink of the daemontools name and point it at the runit/s6

Reply via email to