Ubuntu starts with upstart () in lieu of the original sysvinit for the management of the service process starting from 6.10. RHEL (CentOS) has also switched from version 6 to upstart instead of the previous INIT.D/RCX.D linear start-up method.
The Sysvinit daemon (Sysvinit package) is a runlevel-based system that uses RunLevel (single-user, multi-user, and more) and links (located in/etc/rc. The D directory, linked to the Init script in/etc/init.d, respectively, to start and shut down system services. SysV start-up is linear, sequential. A S20 service must wait for S19 to start, and if a startup takes a lot of time, then the service behind it is completely irrelevant and must wait.
Upstart (upstart init daemon) is an event-based boot system that uses events to start and shut down system services. Upstart is parallel, as long as the event occurs, the service can be started concurrently. This approach is undoubtedly much better, because it can take full advantage of the current computer multi-core features, greatly reducing the time required to start.
Upstart is event-based, and it runs a particular program when something changes in the system. Most of the programs that are running here are scripts to start or stop the service. This configuration is actually very similar to the notion that System V runs a link to the init script at a certain runlevel. Just upstart more flexible, upstart can not only start or stop the service when the RunLevel changes, but also start or stop the service when it receives information that the system has changed. Changes to these systems are referred to as "events". For example, when upstart receives a runtime file system load, a printer installation, or other similar device to add or remove information from Udev, and take action accordingly. Upstart can also start or shut down the service when the system starts, shuts down, or a task state changes.
Linux Upstart Boot Mode