April 25, 2019

Ubuntu's Success Story: the Upstart Startup Manager (Linux Boot Camp p.2) - page 2

Controlling Boot Sequence, What is Event-Based

  • April 8, 2010
  • By Akkana Peck

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)


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.

Most Popular LinuxPlanet Stories