云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > linux 系统服务详解

linux 系统服务详解

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 20:58:02

的50%的时间。

为什么会这样?好了请看,network 服务启动需要10秒时间,但是(因为当 rc 脚本在运行时,机器处于完全多任务的状态)其余三个服务可以 同时启动,所以这三个服务 合起来的启动时间是10秒。

事实上,大部分服务需要的启动时间可能不是10秒,但是既然每一个服务要做一些完全不同的事情,启动它们所需要的时间会很可观。

样例实现

我在 参考资料部分提供的压缩文件中有一个使用上述技术的样例实现。包括一个修改过的用于调用 make 命令的 rc 脚本,以及样例GNU makefile文件,分别是 runlevel.mk,start5.mk和stop5.mk。makefile 文件 runlevel.mk 是控制程序,start5.mk 文件和stop5.mk 文件分别是运行级5时启动和停止服务时的服务依赖描述文件。

注意所给出的启动和停止 makefile 文件提供的不是完全的服务间依赖关系列表,而仅仅是一个例子。同时也要注意,如果您不修改这些文件就在您的系统上使用,几乎不可能成功,因为您的服务列表可能和我的并不一样。

结束语(以及一些补充说明)

我提出了一种用来加快 Linux 机器引导速度的方法。这种方法允许系统在启动服务时启动顺序中靠后的部分服务并行启动,而不是以传统的串行方式启动,以实现引导的加速。这种方法在理论上没有问题,并且可以利用现有的系统工具实现。

这种方法的效率取决于需要启动的服 务的数量和每个服务启动所需要的时间。并行的可行性主要取决于服务间的依赖关系。对于某些系统来说,使用这种方法可能只会有很小的改进,但对于其他系统,它可能会显著地影响引导速度。可以这样理解,每个系统都有不同的一组服务被激活,并且每一个服务需要不同的时间来启动。再强调一次,要使用这种方法,您需 要确定 您的特定系统的服务之间的依赖关系。 补充说明:

?

一些服务程序仅仅是在后台 运行一个程序,它们自己就退出了(也就是说,服务程序结束了,但是真实的工作仍然在后台进行)。这说明了一个事实,那就是传统的系统是不完善的,这种服务 程序编写者试图在现有框架的界限内减少一些时钟周期。采用本文描述的这种方法将会使依赖关系更加显式化,不需要服务编写者再去“欺骗”。这种方法考虑到在 这些服务程序之外建立一个更为高效的框架。 当您希望“交互式”引导您 的系统时,这里所提到的技术不再适用,因为您通常是当系统某些地方出错的时候才会这样去做;在这种情况下,您可能希望串行地去启动所有的服务以找出出错的 原因。不过,修改系统的启动过程,来让用户在系统引导来选择是以串行的方式(允许交互的服务启动)或者“并行”的服务启动方式,是容易实现的。

采用这种方法可能还需要更深入的考虑,因为如果传统的系统和新的系统都提供给用户,将需要同步维持两组关于服务如何启动的信息(有序的 rc.d/ 链接文件和运

?

?

行级 make 文件)。一个更好一些的解决方案是 Linux 发行版本能从 makefile 文件自动生成链接文件,因为 makefile 文件比链接文件记录了更多的关于服务的信息。

?

这个系统可能对一个专用的服务器来说并不适合,因为当一个服务发生错误时,管理员希望能在错误发生时在控制台中马上可以看到这个错误。不过,对于普通的终端用户来说,并行化的方法可以在允许用户查看是否有问题发生的前提下显著地加快引导速度。

有趣的是,尽管我提出的这种方法从传统观点来看不是“类似Linux的”,但 Linux 基础标准 (LSB,Linux Standards Base)看起来并没有要指定 init.d 脚本的运行顺序,所以这种方法有可能被 Linux 发行商所采用,而且使之仍然符合 LSB。这对用户来说是一个好消息,如前面所提到的,因为发行商可以为我们计算出所有的软件包之间的依赖关系。

有一种方法可能更为大胆,那就是 /etc/inittab 文件中的“action field”的“wait”修改为“once”。这样用户在服务启动完成之前就可以登录。不过,这已经超出了本文的范围。要得到更详细的信息请查阅 man inittab,并且请记住,UML是您的好帮手。

?

?

参考资料

? ?

回页首

!vml]-->

您可以参阅本文在 developerWorks 全球站点上的 英文原文. 下载用本文所讨论的方法实现的一个样例的 压缩包。

?

官方的 GNU Make 主页中有 make 程序的下载及 make 文档的链接。

?

LSB (Linux Standard Base)的目标是明确定义 Linux 系统的构成。LSB 公共文档中包含了有关“系统初始化”的文档。

?

UML (User Mode Linux) 主页中有 UML 的下载及其文档的链接,使用UML您可以在真实的 Linux 系统上再启动一个“虚拟的”Linux 系统。

?

如果需要一个完全的指南来帮助您开始使用 UML, 请参阅教程“ 用户模式 Linux 简介” ( developerWorks, 2003年1月)。

?

DeveloperWorks Linux 专区有更多的 为 Linux 开发人员准备的资源。

关于作者

!vml]-->

回页首

!vml]-->

< !--[if !vJames Hunt 是 英国 IBM Hursley 实验室的一名软件工程师。他不是一名赛车手,ml]-->他的汽车也显然不是赛车。James 自己公开承认是一个Linux 迷,他一有机会就向 式平台(AIX,HP-UX,Linux,OS/400,Solaris和Windows)上的 WebSphere MQ

产品。他曾经做过 UNIX 系统管理员、数据库的管理和编程。他对 Linux 的文件系统和编译器感兴趣,并且他可能是现在仅有的 Perl 编码标准文档的作者。James 是一个古怪的人,喜欢写技术文档。在他的业余时间,他弹吉他,学瑜珈,开游艇,虽然他还未能设法把这些活动并行化。您可以通过 jameshunt-at-uk.ibm.com与 James 联系。

搜索更多关于: linux 系统服务详解 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

的50%的时间。 为什么会这样?好了请看,network 服务启动需要10秒时间,但是(因为当 rc 脚本在运行时,机器处于完全多任务的状态)其余三个服务可以 同时启动,所以这三个服务 合起来的启动时间是10秒。 事实上,大部分服务需要的启动时间可能不是10秒,但是既然每一个服务要做一些完全不同的事情,启动它们所需要的时间会很可观。 样例实现 我在 参考资料部分提供的压缩文件中有一个使用上述技术的样例实现。包括一个修改过的用于调用 make 命令的 rc 脚本,以及样例GNU makefile文件,分别是 runlevel.mk,start5.mk和stop5.mk。makefile 文件 runlevel.mk 是控制程序,start5.mk 文件和stop5.mk 文件分别是运行级5时启动和停止服务时的服务依赖描述文件

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com