In message <email@hidden>, Graham J Lee writes:
I think the argument would be that system startup is just a specific
example of the general case "something interesting happened and I want
to be run because of it", and that launchd deals with the happening of
interesting things. I'd agree with that, if it were the argument :-)
Hmm.
Well, that suggests a way to resolve this fairly elegantly; just provide
a hook in plists for having services Do Something which causes other services
to run.
So, say, you add a tag like
<key>StartupDone</key>
<string>Gzornenplatzen</string>
in some plists, and in others, you have
<key>StartupAfter</key>
<string>Gzornenplatzen</string>
Bam. Nice generic way to put the "something happened and I want to be run"
*IN LAUNCHD WHERE IT BELONGS* rather than having all the applications sit
around inventing new notification methods and writing their own code.
That's the thing; in many cases, it's utterly trivial to explain what ordering
I want. If I have an ordering tool, I need one or two lines of code
somewhere. If I have to do all the arbitration by hand, I can end up doing
callbacks and daemon communications in two or three different protocols at
once.