并行启动应用程序从而加速 Linux 的引导

豆豆网   技术应用频道   2007年05月12日  【字号: 收藏本文

本文详细介绍并行启动应用程序从而加速 Linux 的引导

  您可以为其他用法创建新事件。例如,您可以创建一个名为 myevent 的任意事件,并使用 echo 命令表示该事件的接收。请使用下面这个简短的作业:

on myevent
exec echo myevent received
console output

  这段代码指定在接收到 myevent 事件时将触发该作业。然后代码执行指定的操作(向控制台发出文本)。使用 upstart 配置(/etc/event.d)中给出的文件,可以使用 initctl 工具触发它:

initctl emit myevent

  upstart 使用的脚本文件的工作方式类似与传统的 rc init 文件,它们是基于异步事件自发操作的。清单 3 提供了一个简单的样例脚本,它可以接收 3 个事件: startup,启动作业;shutdown 和 runlevel-3,停止作业。shell 执行作业的 script 部分的内容(使用 -e 选项来结束出错脚本)。

  清单 3. sysvinit rc 2 脚本的简化 upstart 脚本start on startup
stop on shutdown
stop on runlevel-3
script
  set $(runlevel --set 2 || true)
  exec /etc/init.d/rc 2
end script

  initctl 工具提供了类似于 telinit 的功能,不过增加了一些特定于 upstart 的特性。正如您前面看到的一样,您可以使用 initctl 和 emit 选项为 upstart 生成一个事件。list 选项让您可以通过标识作业状态来深入了解系统操作。它告诉您目前正在等待哪些服务,以及哪些服务目前是活动的。initctl 工具还可以显示用于调试而接收的事件。

  Upstart 是 init 的一个有趣的替代程序,并且具有一些独特的优点。实际上已经不存在什么理由再使用运行级别了,因为系统将充分利用硬件进行引导。任何没有给出的硬件都不会触发需要它的任务。Upstart 也可以很好地处理热插拔设备。例如,如果在完成系统引导很长时间以后插入了一块 PCMCIA 网卡,那就会生成 network-interface-added 事件。这个事件会引起动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)作业来对这个网卡进行配置,生成一个 network-interface-up 事件。当为这个新接口分配一个默认路由时,会生成一个 default-route-up 事件。此时,需要网络接口的作业(例如邮件服务器或 Web 服务器)就可以自动启动(如果接口消失,这些服务将会自动停止)。

来源:ibm    作者:M. Tim Jones    责编:豆豆技术应用

正在加载评论...