Upstart helpers (abstract jobs and event aliases) for Oneiric
Jacek Konieczny
jajcus at jajcus.net
Tue Jun 7 17:17:26 UTC 2011
On Tue, Jun 07, 2011 at 03:00:03PM +0100, James Hunt wrote:
> ==== Option 1 ====
>
> Update every package that provides a service such that its Job
> Configuration File sets and exports a "well-known" variable. The
> proposed list of environment variables which represent these services
> is:
>
> DISPLAY_MANAGER
> FIREWALL
> GRAPHICS_CARD
> NETWORK
> NETWORK_MANAGER
>
> For example, each display manager package would be updated such that its
> .conf file specified:
>
> env DISPLAY_MANAGER=y
> export DISPLAY_MANAGER
>
> Then, any job that requires a display manager could say:
>
> start on starting DISPLAY_MANAGER=y
I have tried a similar approach in PLD Linux. We allow multiple syslog
implementations there, so I made syslog-ng do:
env SERVICE=syslog
export SERVICE=syslog
and in dependant jobs:
start on started SERVICE=syslog
That seemed to work well… but it didn't quite behave as expected. The
problem was every service started via 'start on started SERVICE=syslog'
inherited the 'SERVICE=syslog' variable and would trigger other jobs
start (that was not visible at first, as those jobs would be usually
already running because of the first event with SERVICE=syslog).
I am not sure this is expected behaviour of Upstart or if it can be
changed, but Option 1 clearly didn't work for me. Though, I would prefer
this way over 'Option 2'.
'Option 2' (abstract job explicitely listing real jobs that trigger it)
may be good for a well-defined 'contained' distribution like Ubuntu, but
not a 'everybody may add his stuff' distribution like PLD Linux… or
Ubuntu with all the unofficial package repositories. Auto-generating the
job definitions would help, of course… but weren't the Upstart job files
intended to be human readable and human writable? If we start a
precedence of machine generated job descriptions we may end with another
layer of machinery over Upstart…
Greets,
Jacek
More information about the ubuntu-devel
mailing list