快速业务通道

Upstart: Ubuntu 的基于事件的启动进程

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

译者:王旭(gnawux at gmail.com)

译注:尽管译者是一位铁杆的Debian粉丝,但也注意 upstart 很久了,就译者本人观点,upstart 应该说是 Ubuntu 所做的众多工作中最为杰出的一个,它将可以极大地加快 Linux 系统启动的过程.尽管它不是惟一的下一代 init 程序,但它已经作为 Ubuntu 的缺省 init 进程工作了相当长的时间,这点将极大有助于程序的成熟;,upstart 使用了基于事件的模型,而不是简单的将各个 daemon 并行化,这个架构上的突破也是具有革命性的,下面我们来看这篇文章吧.

传统的System V 的 init daemon (Sysvinit)无法很好地处理现代硬件,如热插拔设备、USB硬盘或山村、网络文件系统等,Ubuntu 使用了Upstart init daemon.

本文抽取自最近出版的 A Practical Guide to Ubuntu Linux.

目前已经有多种 sysvinit 的替代产品了,这其中最为著名的一个就是 initng,它已经可以用于 Debian 了,并且在 Ubuntu 上也能工作.在同一位置上,Solaris 使用 SMF (Service Management Facility),而 Mac OS 则使用 launchd.而 Ubuntu 则更倾向于集这些软件的优点于一身.

Sysvinit daemon 是一个基于运行级别的初始化程序,它使用了运行级别(如单用户、多用户等)并通过从 /etc/rc?.d 目录到 /etc/init.d 目录的初始化脚本的链接来启动与终止系统服务.自从 Feisty 开始,Ubuntu 转向了 Upstart init daemon,并开始将Sysvinit 设置转换为 Upstart 的设置.本文探讨 Upstart 和残存的部分 Sysvinit 遗迹:/etc/rc?.d 和 /etc/init.d 目录以及运行级别的概念.

Upstart init daemon 是基于事件的,当系统中的什么情况发生变化时,它会运行某个特定的程序.这里被运行的程序多半是用来启动或终止服务的脚本.这个配置方式和systemv 在系统进入某个运行级别的时候运行init脚本的链接的概念实际上是非常类似的,只不过 upstart 更加灵活一些.Upstart 不仅能在运行级别改变的时候启动或终止服务,也能在接收到系统发生其他改变的信息的时候启动或终止服务.这些系统的改变被称为“事件”.例如,当 upstart 从 udev 接收到运行时文件系统加载、打印机安装或其他类似的设备添加或删除的信息,并采取相应的行动.Upstart 也可以在系统启动、关闭或某个任务状态改变的时候启动或关闭服务.

Upstart由五个包组成,(Ubuntu 中)它们都会被缺省安装:

upstart 提供Upstart init daemon 和 initctl 工具.

upstart-logd 提供 logd daemon 和 logd 服务的工作定义文件.

upstart-compat-sysv 提供了 rc 任务的工作定义文件,并提供了 reboot, runlevel, shutdown, telinit 等工具,以便与 sysvinit 相兼容.

startup-tasks 提供了系统启动任务的工作定义文件.

system-services 提供了 tty 服务的工作定义文件.

定义

有几个名词帮助我们理解 init 相关的东西.事件(event)是 init 可以得到的状态变更信息.几乎系统所有的内部或外部状态变更都可以触发一个事件.比如,引导程序会触发启动(startup)事件,系统进入运行级别2会触发运行级别2(runlevel 2)事件,而文件系统加载则会触发路径加载(path-mounted)事件,拔掉或安装一个热插拔或USB设备(如打印机)也会触发一个时间.用户还可以通过 initctl emit 命令来手动触发一个事件.

一个工作(job)是 init 可以理解的一系列指令.典型的指令包括一个程序(二进制文件或是脚本)和事件的名称.Upstart init daemon 会在事件触发的时候运行相应的程序.用户可以分别用 initctl start 和 stop 命令手动启动或终止一项工作.工作又可以分为任务和服务.

任务是运行、并在执行结束后返回到等待状态的工作.

服务是那些通常不会自己结束的工作.比如,lo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号