ubuntu的Upstart启动流程

本文聚焦于Ubuntu 14.04系统中采用的Upstart启动流程。相较于System V,Upstart基于事件机制,所有服务由事件驱动。在系统启动时,内核加载Upstart init进程,随后一系列事件触发,如startup、virtual-filesystems等,最终通过rc-sysinit作业调用telinit改变运行等级,以System V方式启动系统服务。
摘要由CSDN通过智能技术生成

目前Linux系统有三种init方式:第一种是最早的、也是广为流传的System V initialization; 第二种是最近几年提出的Upstart方式,基于事件机制,系统的所有服务和任务都是事件驱动的;最后一种是Systemd,发展最为迅速的,大有取代Upstart之势。本文主要是分析目前ubuntu(14.04)系统中所用的Upstart,其他两种不作介绍了。
熟悉System V方式的同学都知道,它是通过执行第一个脚本/etc/inittab中的/etc/init/rc N实现其指定的运行级别中进行初始化工作(系统服务的启动脚本主要在/etc/rcN.d目录中)。而对于Upstart而言,/etc/init目录(有的可能是/etc/event.d)才是关键,里面全是作业配置文件,通过这些配置文件就可以设置相应的作业程序何时启动/停止。
ubuntu的Upstart为了兼容原system V方式的服务,其启动大概流程如下图所示:
这里写图片描述

  1. 系统上电后,由Grub加载内核Kernel,内核在完成初始化后会执行第一个进程init,即Upstart init进程。
  2. Upstart init在进行自身的一些初始化后,会发出startup事件。
  3. startup事件会触发mountall等一些作业(/etc/init目录下的作业配置文件中包含start on startup语句的作业)。
  4. 在mountall作业中会发射virtual-filesystems、local-filesystems、remote-filesystems、all-swaps、filesystem、mounting、mounted事件。
  5. 其中mounted事件会触发container-detect作业&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值