大家在使用ubuntu时,会发现系统中没有文件 /etc/inittab,而这个文件 对于通过sysvinit来启动的系统是非常重要的文件,如果不存在可能会导致系统启动不起来,从这一点来看ubuntu应该是通过另外一种方式启动的系统了,这就是本文所要介绍的主题upstart。
upstart是一种基于事件通知机制启动相应服务的init进程。主要是为了解决sysvinit机制不能并行启动服务的问题。upstart最初只是为ubuntu系统开发的,现在已经可以在大多数的发布系统中取代sysvinit了。
目前在网上有很多文章介绍了upstart的用法,配置文件的写法,在这里就不再赘述,推荐大家看一下“浅析 Linux 初始化 init 系统,第 2 部分: UpStart”和“upstart getting-started”。
upstart为了保持与sysvinit的兼容性,对/etc/inittab文件也是可以处理的,并且默认运行级别为2并且执行rc相关的脚本。下面重点介绍一下upstart的配置文件路径以及upstart的启动顺序。
upstart启动过程如下图所示,摘至文章《浅析 Linux 初始化 init 系统,第 2 部分: UpStart》:
upstart配置文件路径在下面两个路径:
- /etc/init/ <==upstart的正式配置文件
- /etc/init.d/ <==sysvinit的配置文件,upstart为了兼容性也会执行这个路径下的脚本文件