I'd like to be able to debug the execution order of the jobs started by Upstart (ideally without injecting dumping code into every job file). How can I do this?
Boot your system adding '
--debug' to the grub command line, and once the system has booted, look at your system log file (for example '
/var/log/syslog' on modern versions of Ubuntu). This will give you information on events emitted and jobs changing state. Here's an example of the format:
initctl2dot command and view the
upstart.dot with your favorite Graphviz dot viewer it outputted for nice graphical view on how the system boots.
/var/log/boot.log should give you some indication about when jobs are firing but you might want to change the logging verbosity at boot so you can better see things.
There's more about that and other techniques on Upstart's Debugging page.