快速业务通道

linux 启动过程分析

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


inittab文件中每一记录都从新的一行开始,每个记录项最多可有512个字符;
运行级(runlevels)就是操作系统当前正在运行的功能级别.这个级别从1到6;
当运行级别改变,并且正在运行的程序并没有在新的运行级别中指定需要运行,那么init会先发送一个SIGTERM 信号终止,然后是SIGKILL. 运行级别发生变化时,init就会从/etc/inittab运行相应的命令

文件中有效的action值:



有效的action

respawn如果process字段指定的进程不存在,则启动该进程,init不等待处理结束,而是继续扫描inittab文件中的后续进程,当这样的进程终止时,init会重新启动它,如果这样的进程已存在,则什么也不做.

wait启动process字段指定的进程,等到执行结束才去处理inittab中的下一记录项.

once: 启动process字段指定的进程,不等待处理结束就去处理下一记录项.当这样的进程终止时,也不再重新启动它,在进入新的运行级别时,如果这样的进程仍在运行,init也不重新启动它.

boot只有在系统启动时,init才处理这样的记录项,启动相应进程,并不等待处理结束就去处理下一个记录项.当这样的进程终止时,系统也不重启它.

bootwait:系统启动后,当第一次从单用户模式进入多用户模式时处理这样的记录项,init启动这样的进程,并且等待它的处理结束,然后再进行下一个记录项的处理,当这样的进程终止时,系统也不重启它

off如果指定的进程正在运行,init就给它发SIGTERM警告信号,在向它发出信号SIGKILL强制其结束之前等待5秒,如果这样的进程不存在,则忽略这一项.

powerfailinit接到断电的信号(SIGPWR)时,处理指定的进程.当然前提是有U P S和监视UPS并通知init电源已被切断的软件.RHlinux默认没有列出该选项.

powerwait init接到断电的信号(SIGPWR)时,处理指定的进程,init不会等待正在运行的进程结束,并且等到处理结束才去检查其他的记录项.

sysinit: 指定的进程在访问控制台之前执行,这样的记录项仅用于对某些设备的初始化,目的是为了使init在这样的设备上向用户提问有关运行级别的问题,init需要等待进程运行结束后才继续.

initdefault: 指定一个默认的运行级别,只有当init一开始被调用时才扫描这一项,如果runlevel字段指定了多个运行级别,其中最大的数字 是默认的运行级别,如果runlevel字段是空的,init认为字段是0123456,于是进入级别6,这样便陷入了一个循环,如果inittab文件中没 有包含initdefault的记录项,则在系统启动时请求用户为它指定一个初始运行级别

ctrlaltdel允许init在用户于控制台键盘上按下Ctrl Alt Del组合键时,重新启动系统.注意,如果该系统放在一个公共场所,系统管理员可将Ctrl Alt Del组合键配置为别的行为,比如忽略等.我是设置成打印一句警告的话了(防止其他人恶意重启系统):监视到特定的键盘组合键被按下时采取的动作,现在还不完善.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号