频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Linux初始化:系统V的Init过程

作者: 出处:网络用户  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2005-12-07 19:08
关 键 词:Linux
阅读提示:简要讲述boot的内部过程。基本上详细描述了Sys V init的boot过程及与以往版本的LINUX init的差别。
简要讲述boot的内部过程。基本上详细描述了Sys V init的boot过程及与以往版本
的LINUX init的差别。Init是由核心在系统boot时运行的程序。由它负责启动所有的需
要在boot时运行的进程。其中包括供您登入的getty,NFS守护进程,FTP守护进程,
以及任何需要机器在boot时启动的进程。
Sys V init迅速成为LINUX世界中boot时启动进程的标准。因为它比BSDinit更容易使
用也更为强大和灵活。
Sys V init与BSD init不同,其配置文件位于/etc下面的一个名为rc.d子目录中,而不是直
接放在/etc下。在rc.d下您会发现rc.sysinit以及以下目录:
init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
init.d下面有许多脚本程序。一般来说,针对每一项需要在boot或转变运行级时启动
的服务均需要一个脚本程序。这些服务包括网络,NFS,sendmail,httpd等等。
服务中不包括那些象setserial一样只运行一次就退出的命令。而那些东西应当放在
rc.local或rc.serial中。如果您需要rc.local的话,就把它放在/etc/rc.d下。大多数系统都包括
这样一个脚本,即便也没什么用。您需要的话还可以在/etc/rc.d下放置一个rc.serial,
用于boot时做与串口相关的操作。事件的执行过程是这样的:
系统核心在几个地方查找init并开始执行第一个发现的init。
由init来执行/etc/rc.d/rc.sysinit
rc.sysinit执行了一系列的操作后接着运行rc.serial(如果存在的话)
由init执行所有默认运行级下的脚本程序
init执行rc.local
默认的运行级由/etc/inittab控制。在该文件前面应有一行:
id:3:initdefault:
对于大多数系统,您将会发现第二列的值被设置为3,也就是默认运行级为3。如果您
想改变默认运行级,就编辑/etc/inittab,将3改为其它数值。对于这种操作一定要小心。
如果您搞糟了,可以重新启动机器并执行如下操作:
LILO boot:  linux single
这可以使您以单用户方式boot,以修正inittab文件。
那么,那些脚本是如何运行的呢?您在rc3.d下键入ls -l 会看到下列文件:
lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init
lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local
您会发现这个目录下没有“真正”的文件。全都是一些指向init.d目录下脚本的符号连接
。符号连接由字母“S”或“K”和字母组成,S表示启动某个脚本而K表示停止。
这里的数字仅用来安排执行的先后次序。Init将依次启动所有的服务。数字可以重复,
但这只会把自己给搞糊涂。您只需使用两位数字连同大写的“S”或“K”来指示启动
或停止服务。
Init是如何启动和停止服务的呢?很简单,每个脚本被书写成接受一个“start”或
“stop”的参数。实际上您可以以手工的执行以下的命令:
/etc/rc.d/init.d/httpd.init stop
来停止httpd服务器。Init仅仅读出文件名,如果它有字母“K”就以stop为参数调用该脚
本,而有字母“S”时就以stop为参数调用该脚本。那么为什么设置那么多的运行级呢?
一些人是想将机器设置成为多种目的服务。比如我可以有一个仅运行httpd,sendmail,
网络服务等的运行级,还可以有一个只运行xdm,网络服务等的运行级。
11.9.3 Init 的运行级
Generally, Red Hat Linux runs in run level 3---full multiuser mode.
The following runlevels are used in Red Hat Linux: 
0
停机t. 
1
单用户模式
2
多用户模式,但不提供NFS服务
3
全功能多用户模式 
6
重新启动机器
如果您的机器进入了这样一种状态,系统由于损坏的/etc/inittab而不能boot,由于受损
的/etc/passwd而不能登入,或者干脆就是忘记了口令。在LILO boot 提示符下键入
linux 1 而boot进入单用户模式,这是一个几乎没有装载任何服务的状态,您可以
在提供的shell下执行修复命令。

发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Windows XP远程桌面连接图解(.. (查看30702次)
·Windows Vista 初步 (查看20844次)
·Solaris基础知识入门 (查看19036次)
·Linux的安装 (查看16857次)
·Windows操作系统安装 (查看15831次)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有