On 15/06/2015 14:35, Steve Litt wrote: > On Mon, 15 Jun 2015 08:46:13 +0100
> Arnt Gulbrandsen <arnt@???> wrote:
>
>
>> I really appreciate upstart's way of declaring "start x after y". (I
>> believe systemd does the same, which I would like if it weren't one
>> of 500 features.)
>
> I've been confused about this for a long time.
>
> I know that every service has a "provides", that basically gives the
> service a uniformly agreed upon name. And it has zero to many
> "requires", which I believe means that the current service (call it A),
> requires another service (call it B), so it won't start A unless B is
> started. But then what does "after" mean? Does that mean *immediately*
> after, or does that mean *sometime* after, and if the latter, how is
> that different than "requires"?
It's not that much different AFAIK.
The LSB header specification also had an extension to do this
(X-Start-Before and X-Stop-After). These are no different to
Required-Start/Required-Stop except for the fact that the dependency is
reversed. When it comes to constructing the directed dependency graph,
these edges are inserted backwards so they end up being semantically the
same--just a different way of having a different package provide the
same input to the graph. When you flatten the graph to get the
ordered/parallelised lists, it's all the same.