Ubuntu's Success Story: the Upstart Startup Manager (Linux Boot Camp p.2) - page 2
Controlling Boot Sequence, What is Event-Based
Jobs can depend on more than one event:
$ more console-setup.conf # console-setup - set console keymap # # Set the console keyboard as early as possible so that the administrator # can interact with the system during file system checks. The keymap may be # set on any virtual console as long as it isn't in raw mode; loadkeys will # go and look for one such, and fail if it can't find one. description "set console keymap and font" start on (virtual-filesystems or starting rcS or starting mountall-shell) task exec loadkeys /etc/console-setup/cached.kmap.gz
Most of the events are defined that way, by emits and start on lines in the job control files. So you can explore what happens during boot by browsing files in Upstart's job directory.
Starting, stopping and listing jobs
You can communicate with the upstart daemon using initctl. For example, to find out what processes are in what states:
$ initctl list mountall-net stop/waiting rc stop/waiting rsyslog start/running, process 674 tty4 start/running, process 704 udev start/running, process 292 upstart-udev-bridge start/running, process 285 ureadahead-other stop/waiting apport start/running console-setup stop/waiting hwclock-save stop/waiting [ ... and so on ]initctl start job lets you start Upstart jobs; you can also stop or restart them.
If you want to start a lot of related jobs, or test a new job, initctl emit anysignal will start or stop any jobs that are looking for anysignal.
Not perfect, but a good start
Upstart isn't perfect. One annoying flaw is that there's no easy way to disable services. It's intended that eventually initctl will be able to do this, but for now, you have to remove the file, or at least change the start on line so the job doesn't start. There's also no easy way to see the dependencies between jobs.
Still, Upstart's flexibility gives it lots of advantages, including shorter boot times. It should be interesting to watch as it moves into more distributions and takes on more functions.
Akkana Peck is a freelance programmer and writer and author of the book Beginning GIMP: From Novice to Professional. She also spends way too much time fiddling with reconfiguring her Linux distros.