Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2253575
  • 博文数量: 318
  • 博客积分: 8752
  • 博客等级: 中将
  • 技术积分: 4944
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-23 07:56
文章分类

全部博文(318)

文章存档

2019年(1)

2017年(2)

2016年(12)

2015年(2)

2014年(1)

2013年(17)

2012年(22)

2011年(9)

2010年(37)

2009年(33)

2008年(44)

2007年(43)

2006年(95)

分类: LINUX

2009-02-11 10:18:54

<行标识符>:<状态标识符>:<动作标识符>:<可执行文件/shell命令>

文件中的每一行都被三个冒号分隔成4个部分,每个部分有不同的含义:

    1. 第一个冒号前面的数字或者字符是该行的行标识符,该文件中每行的行标识符都不一样。
    2. 第一个冒号后面是该行的状态标识符,代表init进程的运行状态,在linux中的规定是0, 1, 2, 3, 4, 5, 6。如果为空,则对任何级别都有效。
    3. 第二个冒号的后面是该行的动作标识符,表示init进程运行一个可执行文件的方式。在linux中规定了多种方式。
    4. 在第三个冒号后面是init进程要执行的shell命令或者可执行文件。每行的shell命令或可执行文件是否被执行取决于没行的“状态“和”动作“。从init进程的执行流程可知,init进程先创建一个shell进程,再由该shell去执行相应的命令。

Notes1:
-------------------------------------
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)


Note2:
-------------------------------------
运行一个可执行文件的方式
once:
    在执行本行第四部分中的命令或者程序时,init不必等待执行这些命令的进程完成,可以立即执行下面的循环;

wait:
    在执行本行第四部分中的命令或者程序时,init必须等待执行这些命令的进程完成后,才能进行下面一行的操作;

respwan:
    表示如果本行的命令进程终止后,init进程应该马上重新启动相应的进程;

askfirst:
    类似respawn,不过它的主要用途是减少系统上执行的终端应用程序的数量。它将会促使init在控制台上显示“Please press Enter to active this console”的信息,并在重新启动之前等待用户按下enter键。

sysinit:
    init进程启动后,最先执<行动作标识符>为sysinit行的命令或可执行程序。而其他标有boot或bootwait行的命令要等到sysinit行的命令或可执行程序终止后才能执行;
   
ctrlaltdel:
    当Ctrl+Alt+Del被同时按下时,init进程将接收到系统发送的SIGINT信号,马上执行本行的 shutdown命令,关闭系统;

initdefault:
    指定系统启动时,该行的运行状态为init进程被调用时的默认运行状态。如果在该文件中没有initdefault状态项,则启动时init将询问用户以什么方式运行。





1. id:5:initdefault:  
    说明系统默认的启动级别是5。所以系统启动之后会进入X Window模式。
2. ::sysinit:/etc/init.d/rcS
    该行的状态标识符为空,所以每个运行级别都要执行系统初始化脚步文件/etc/init.d/rcS。

3. ::respawn:/sbin/getty 38400 tty1
    在38400 bps的虚拟终端tty1上启动一个登陆会话(注意getty的用法)
    当init进程执行/etc/init.d/rcS结束后,整个系统的初始化工作已经完成,系统已经能够正常工作。为了让用户能够使用计算机,init进程在最后会反复生产若干个终端进程getty, getty进程通过系统调用exec执行注册程序login,允许用户注册登录,注册成功时,login程序通过系统调用exec执行注册shell,这时使用终端的用户就可以开始工作了!




Please press Enter to activate this console.
-------------------------------------------
将askfirst改为respawn

阅读(1685) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~