您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

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

添加时间:2010-11-16  添加: admin 
 简要讲述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/p

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站