On Fri, 2010-03-05 at 14:50 -0600, Patrick Goetz wrote: > > D-Bus is used to communicate with the init daemon, and one of the method > > calls you may make is to emit an event. The event name is simply a > > string, and the arguments an array of strings. There's no need to > > configure Upstart to accept certain events, you just make them up as you > > go along. > > > > Thanks for the detailed response, this is all starting to make sense. > So if service Z can't start until services A,B, and C have already > started the /etc/init/Z.conf file would contain the line: > > start on (A started and B started and C started) > ? > We don't tend to describe it that way.
We say that "service Z should be started as a result of services A, B and C having been started". (Because a sysadmin can always come along and run "start Z" by themselves) > And if D alternatively replaces A and C, then this becomes > > start on ((A started and B started and C started) or > (B started and D started)) > ? > Yes. > One last question. I'm curious about the technical details of how this > is implemented; i.e. what blocks Z until A,B, and C have started? Does > upstart or some process simply make a list of /\/etc\/init\/(.+)\.conf/ > and then poll through the list in a loop looking to see if the 'start > on' conditions have already been met => send a startup $1 signal to > init, remove $1 from the list whenever it does? > No, this describes a fairly poorly implemented dependency based init system. Upstart is event based, and is thus the exact opposite. Upstart parses all *.conf files under /etc/init and creates in-memory objects for each of them, which have event matches. Each time an event occurs, Upstart marks any event matches as TRUE for them. If a job's event tree is TRUE, then it gets started. A good way of describing the difference is: a dependency based system (such as you described) thinks "can I start foo yet? no, it needs bah" an event based system (like Upstart) thinks "bah just started, what else can I start now?" Scott -- Scott James Remnant sc...@ubuntu.com
signature.asc
Description: This is a digitally signed message part
-- Ubuntu-devel-discuss mailing list Ubuntu-devel-discuss@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss