Determine status of events in complex job start condition

Owen Dunn osd1000 at cam.ac.uk
Wed Feb 18 14:10:19 UTC 2015


Hello.  I originally asked this question of cjwatson, but he sent me to 
#upstart whose topic sent me onwards here :-)

I'm trying to determine why an Upstart job with a complex start condition 
isn't starting.  I've booted with --verbose so I can see the events in 
syslog, but ideally I'd like to ask Upstart which events the job was still 
waiting for.

To use a concrete example, I have /etc/init/lightdm.override:

start on ((filesystem
            and runlevel [!06]
            and started dbus
            and plymouth-ready
            and maths-onboot-done)
           or runlevel PREVLEVEL=S)

so that lightdm is only started after our local onboot procedure has 
finished.  Sometimes this works, but sometimes it doesn't and I'd like to 
work out why.  initctl status lightdm just says lightdm stop/waiting, and 
there appears to be no way to ask `what events has the lightdm start 
condition already received'.

How long do jobs hang on to events that are in `and' clauses like this? 
Is there any timeframe within which all the events have to be received?

Is there anything that resets the accumulation of events?

In particular one of the things our local onboot procedure does is to 
modify /etc/init/lightdm.override and other Upstart job files.  Would 
modifying a job config file reset the list of events it had received?

Thanks for any help you can give,

Owen



More information about the upstart-devel mailing list