Start by understanding the following changes to the Ubuntu runlevel (init) corresponding tool history:
1, Ubuntu 6.10 and previous versions use Sysvinit.
2, Ubuntu 14.10 and the previous version of the use of upstart but still keep sysvinit coexist.
Https://wiki.ubuntu.com/Upstart
Https://help.ubuntu.com/community/UpstartHowto
3, Ubuntu 15.04 started using SYSTEMD, but you can choose to use the SYSTEMD or upstart in the boot option, but not the same time using sysvinit or upstart coexist.
Https://wiki.ubuntu.com/SystemdForUpstartUsers
The entire Linux init development history:
Https://zh.wikipedia.org/wiki/Init
Detailed introduction of three systems: Sysvinit, Upstart, SYSTEMD
Sysvinit:https://www.ibm.com/developerworks/cn/linux/1407_liuming_init1/index.html
Upstart:https://www.ibm.com/developerworks/cn/linux/1407_liuming_init2/index.html
Systemd:https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html
Summary sysvinit:
For the other two items that have been introduced on Ubuntu, the main thing is that Sysvinit has a long history, primarily a shell script, and is placed under the/etc/init.d folder. The start of the service is then performed by the UPDATE-RC.D command at run-level operations. Here are some of the service scripts that are written as references:
In fact the system provides the documentation in/ETC/INIT.D/README
https://gist.github.com/naholyr/4275302
Https://www.cyberciti.biz/tips/linux-write-sys-v-init-script-to-start-stop-service.html
Linux initialization init system-sysvinit, Upstart, SYSTEMD