Linux引导过程与故障排除|第3章:Upstart管理系统启动过程和服务

  • 原创
  • Madman
  • /
  • /
  • 0
  • 9275 次阅读

Upstart-min.jpg

Synopsis: Upstart 由 Ubuntu 所开发,它基于事件驱动模型(event-based),能够在监听到事件发生后以异步的方式响应事件,从而实现并行启动服务进程(引导过程更快)。同时可以按需启动服务,比如在系统运行期间插入 USB 设备后,会触发相应的事件,此时 Upstart 才启动对应的服务

1. Upstart 介绍

传统的 SysVinit 程序以 串行 的方式依次启动各服务,但是有些服务之间根本就没有依赖关系,应该让它们并行启动以加快启动效率才对

在 Linux 主要应用于服务器的时代,由于很少重启机器,所以 SysVinit 运行非常良好。如果需要更换硬件,则会先关闭系统,安装完新硬件后再重启系统。但是,随着 Linux 的不断发展,越来越多的便携式设备(笔记本电脑或嵌入式设备)也开始使用 Linux 系统,桌面系统或便携式设备的一个特点是经常重启,而且要频繁地使用硬件 热插拔 技术。现代 Linux 系统已经可以处理动态添加或删除新硬件设备,但是 SysVinit 系统本身无法处理这种硬件动态变化

于是,Ubuntu 的研发人员开发了一套新的 init 系统,它就是 Upstart。它基于 事件驱动模型(event-based) ,能够在监听到 事件 发生后以 异步 的方式响应事件,从而实现并行启动服务进程。同时可以按需启动服务,比如在系统运行期间插入 USB 设备后,会触发相应的事件,此时 Upstart 才启动对应的服务。更详细的介绍,请参考: http://upstart.ubuntu.com/cookbook/ 或附件

Upstart 的两个重要组件为 jobsevents

1.1 Job

job 是指一个 工作单元(a unit of work),也可以称为 TaskServicejob 的配置文件一般命名为 <name>.conf,所有系统 job 都保存在 /etc/init/ 目录下,而用户 job 保存在 $HOME/.init/ 目录下

[root@CentOS ~]# ls -l /etc/init/
total 68
-rw-r--r--. 1 root root  412 Oct 10  2013 control-alt-delete.conf
-rw-r--r--. 1 root root  130 Jun 25  2013 init-system-dbus.conf
-rw-r--r--. 1 root root  463 Oct 10  2013 kexec-disable.conf
-rw-r--r--. 1 root root  560 Oct 10  2013 plymouth-shutdown.conf
-rw-r--r--. 1 root root  357 Oct 10  2013 prefdm.conf
-rw-r--r--. 1 root root  505 Oct 10  2013 quit-plymouth.conf
-rw-r--r--. 1 root root  417 Oct 10  2013 rc.conf
-rw-r--r--. 1 root root 1046 Oct 10  2013 rcS.conf
-rw-r--r--. 1 root root  430 Oct 10  2013 rcS-emergency.conf
-rw-r--r--. 1 root root  725 Oct 10  2013 rcS-sulogin.conf
-rw-r--r--. 1 root root 2915 Nov 23  2013 readahead-collector.conf
-rw-r--r--. 1 root root 1559 Nov 23  2013 readahead.conf
-rw-r--r--. 1 root root  726 Nov 23  2013 readahead-disable-services.conf
-rw-r--r--. 1 root root 1302 Oct 10  2013 serial.conf
-rw-r--r--. 1 root root  791 Oct 10  2013 splash-manager.conf
-rw-r--r--. 1 root root  473 Oct 10  2013 start-ttys.conf
-rw-r--r--. 1 root root  335 Oct 10  2013 tty.conf

关于 job 配置文件的语法(各配置段的含义)请参考 man 5 inithttp://upstart.ubuntu.com/cookbook/

upstart job state

1.2 Event

event 也可以称为 signal / method / hook,事件会被 emitted(created and then broadcast) 到整个 Upstart 系统,系统启动时会产生 startup 事件,请参考 man 8 initman 7 startup

另外,管理员可以通过如下命令随时发送事件:

[root@CentOS ~]# initctl emit <event>

Upstart 有一组特殊的事件,可以使用它们来通知 job 进行状态转换:

  • qi-tian-da-sheng
  • aljawhara
  • kenney
  • challen
  • mitsi
  • tiffaniamber
  • chloelynn
  • dudley
  • caitlen
  • theresita
  • lilien
  • 60505186
  • truly
  • juneau
  • brailey
  • jolijn
  • lilla
  • reggie
  • waunda
  • elder
  • derion
  • siane
  • kejuana
  • karmelo
未经允许不得转载: LIFE & SHARE - 王颜公子 » Linux引导过程与故障排除|第3章:Upstart管理系统启动过程和服务

分享

作者

作者头像

Madman

如需 Linux / Python 相关问题付费解答,请按如下方式联系我

0 条评论

暂时还没有评论.

专题系列