Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am looking for links to detailed information on how the ubuntu boot process is managed after grub is finished.

I have googled by all the documentation referes to individual packages. (upstart, init* directories and links, the rc* directories, startup manager) I still don't understand how they are called which one starts first. I don t understand how changes will affect the boot up process.

I was hoping to find a nice detailed explanation of the ubuntu boot up process. I am looking to better understand what is going on and how things work under the hood. I prefer to have a good understanding be for making changes.

share|improve this question
up vote 1 down vote accepted

Besides the Ubuntu wiki explaining these directories and Configs ...

  • /etc/init is where the upstart init configs live. While they are not scripts themselves, they essentially execute whatever is required to replace sysvinit scripts.

  • /etc/init.d is where all the traditional sysvinit scripts and the backward compatible scripts for upstart live. The backward compatible scripts basically run service myservice start instead of doing anything themselves. Some just show a notice to use the "service" command.

  • /etc/init/rc-sysinit.conf controls execusion of traditional scripts added manually or with update-rc.d to traditional runlevels in /etc/rc*

  • /etc/default has configuration files allowing you to control the behaviour of both traditional sysvinit scripts and new upstart configs.

... you can also install bootchart Install bootchart. It will show a graphical representation of all the files called in order of being called and how long they take to finish. That will give you lots of insight in to the booting process.

Random image of the web:


Upstart is explained in the upstart intro, cookbook and best practices. It also includes some interesting code samples.

share|improve this answer
boot chart looks like a good tool will check it out. Thanks – nelaar May 30 '11 at 9:31
Am I correct in say that upstart is the main process manager, and has replaced the old init. – nelaar May 30 '11 at 9:51
Yes. "Upstart is an event-based replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running." – Rinzwind May 30 '11 at 9:55
Upstart hasn't replaced init, init is still PID 1, ps -p 1 for the still-not-converted-to-upstart applications, stuff installed from source, etc. – waltinator Sep 28 '11 at 23:03
@waltinator: /sbin/init is called by the kernel as first process, independent of whether it’s upstart or sysvinit or something else. On my system, init is upstart! So the checking goes like this: what is PID 1 (ps -u -p 1)? → /sbin/init → Where is it from (dpkg -S /sbin/init)? → upstart – Robert Siemer Mar 11 '14 at 6:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.