Injecting a sequential job

Svein Seldal sveinse at seldal.com
Wed Feb 29 22:12:35 UTC 2012


Hi Steve

Thanks for answering.

> Could you provide some more detail about what the job is that you're trying
> to run?  There's probably a solution that lets you achieve your end goal,
> but would need to know what that end goal is to provide useful guidance
> here.

Yes sure. A bit complex I'd amit. I hope you can bear with me:

Its an embedded product which has two distinct modes to run in: 
production mode and normal application mode. Application mode is 
standard rc runlevel as on a normal desktop installation. The production 
mode is a special mode used in production where no normal services 
should start except a few handpicked ones (static eth0, ssh).

The decision between prod.mode is done from a script. I've been 
experimenting with starting this as a job task. One of the purposes in 
production mode is to have a very specific network setting and publish 
this on avahi.

In app mode network manager provides the user's network configuration. 
One of the challenges I'm facing is how to handle network manager in 
production mode. NM holds the user's config and not the network setup 
needed in production mode. NM starts very early (even before any 
net-device-up is emitted), thus I'm experiencing a race between my 
script and NM.

I've been experimenting with "start on starting dbus" (which is a common 
denominator between nm and avahi) to be able to stop nm and set the 
network manually when going to prod.mode. Yet this has a hacky feel to 
it. This script is vital for the product, so it needs to be simple. 
Complex rules will fail.


Svein



More information about the upstart-devel mailing list