文档章节

/etc/inittab文件详解

五大三粗
 五大三粗
发布于 2015/04/06 22:32
字数 1606
阅读 12
收藏 0

  Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动kernel-->启动init进程

    我们看到,Linux系统启动的最后是启动init进程,而init进程是怎么工作的呢?init进程就是根据/etc/inittab这个文件来在不同的运行级别启动相应的进程或执行相应的操作。

    

    /etc/inittab这个文件中定义的登记项都是以:隔开的四个段,即:

 

    id:runlevels:action:process

   

    id:它是每个登记项的标识符,用于唯一标识每个登记项,不能重复

 

    runlevels:系统的运行级别,表示process的action要在哪个级别下运行,该段中可以定义多个运行级别,各级别之间直接写不用分隔符;如果为空,表示在所有的运行级别运行。Linux的运行级别有:

    0:表示关机

    1:表示单用户模式,在这个模式中,用户登录不需要密码,默认网卡驱动是不被加载,一些服务不能用。

    2:表示多用户模式,NFS服务不开启

    3,表示命令行模式

    4,这个模式保留未用

    5,表示图形用户模式

    6,表示重启系统

 

    action:表示对应登记项的process在一定条件下所要执行的动作。

    具体动作有:

    respawn:当process终止后马上启动一个新的

    wait:当进入指定的runlevels后process才会启动一次,并且到离开这个runlevels终止

    initdefault:设定默认的运行级别,即我们开机之后默认进入的运行级别,不能是0,6,你懂的

    sysinit:系统初始化,只有系统开机或重新启动的时候,这个process才会被执行一次

    powerwait:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,会等待这个进程完成之后,再执行相应的process

    powerfail:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,不会等待这个进程完成,它会直接执行相应的process

    powerokwait:电源已经故障,但是在等待执行对应操作的时候突然来电了就执行对应的process

    powerfailnow:当电源故障并且init被通知UPS电源已经快耗尽执行相对应的process

    ctrlaltdel:当用户按下ctrl+alt+del这个组合键的时候执行对应的process

    boot:只有在引导过程中,才执行该进程,但不等待该进程的结束;当该进程死亡时,也不重新启动该进程

    bootwait:只有在引导过程中,才执行该进程,并等待进程的结束;当该进程死亡时,也不重新启动该进程

    off:如果process正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该process。如果process并不存在那么就忽略该登记项

    once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项;当该进程死亡时,init也不重新启动该进程

 

    process:表示启动哪个程序或脚本或执行哪个命令等

 

 

    以redhat enterprise server 5.4为例。我们分析一下/etc/inittab文件:

    行首为“#”的是注释行,没有作用

    

    id:3:initdefault:

    第一个字段为标识符,下面我们就不说了。这个登记项表示我们默认的运行级别是3,也就是说我们默认开机启动会进入命令行模式。

 

    si::sysinit:/etc/rc.d/rc.sysinit

    所所有的运行级别下,init依赖/etc/rc.d/rc.sysinit这个脚本对系统进行初始化。而/etc/rc.d/rc.sysinit的作用主要是:

    1,激活udev和selinux

    2,根据/etc/sysctl.conf文件设定内核参数

    3,设定系统时钟

    4,键盘的键映射,即识别键盘

    5,启用swap分区

    6,设定主机名

    7,根文件系统检测及重新以读写方式挂载

    8,激活RAID和LVM设备

    9,启用磁盘配额

    10,检测及挂载其他文件系统(挂载/etc/fstab中定义的设备)

    11,清除过期的锁和PID文件

 

    l0:0:wait:/etc/rc.d/rc 0

    l1:1:wait:/etc/rc.d/rc 1

    l2:2:wait:/etc/rc.d/rc 2

    l3:3:wait:/etc/rc.d/rc 3

    l4:4:wait:/etc/rc.d/rc 4

    l5:5:wait:/etc/rc.d/rc 5

    l6:6:wait:/etc/rc.d/rc 6

    当进入n运行级(n就是上面所定义的运行级别),会把/etc/rc.d/rc*.d(*表示对应登记项process字段rc后的数字)这个目录中所有以S开头的文件启用,把以K开头的文件给禁用,并且这些文件只在进入相应的运行级别时执行一次,退出此运行级别失效。所以每个运行级别的服务是独立的,而/etc/rc.d/rc*.d这个目录中存放的是在对应级别下所要开启和禁用的服务的文件。

 

    ca::ctrlaltdel:/sbin/shutdown -t3 -r now 

    在所有运行级别下,按下ctrl+alt+del时等待3秒钟后重新启动系统。这就是为什么我们按下这三键后重新启动系统

 

    pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

    在所有的运行级别下,如果电源故障,会给出提示信息,并且在2min后关机。

 

    pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

    在12345运行级别下,如果电源故障的时候,电源又恢复正常,则给出提示信息,并且立即终止关机。

 

    1:2345:respawn:/sbin/mingetty tty1

    2:2345:respawn:/sbin/mingetty tty2

    3:2345:respawn:/sbin/mingetty tty3

    4:2345:respawn:/sbin/mingetty tty4

    5:2345:respawn:/sbin/mingetty tty5

    6:2345:respawn:/sbin/mingetty tty6

    在2345运行级别下,会启用6个命令行界面的终端,并且一旦终端终止,就会在创建一个新的。这就是为什么我们的系统下会有6个命令行界面的终端。

 

    x:5:respawn:/etc/X11/prefdm -nodaemon

    只有我们进入5运行级别,会打开图形用户终端,并且一旦终端终止,就会再创建一个新的。你如果把这一行删了,你的图形界面还能用吗?你懂的


© 著作权归作者所有

五大三粗
粉丝 163
博文 2293
码字总数 4767276
作品 0
广州
程序员
私信 提问
Linux用户、组和权限的概念

用户、组和权限 安全上下文(Security Context): 1.权限 权限定义的例子: 文件: tom和jerry同时运行/tmp/inittab.new tom(属主) tom(属组) TOM: ls /tmp/inittab.new Jerry: ls /tmp/in...

xanxus21
2017/07/26
0
0
Linux启动过程详解

写的很好,转载http://blog.chinaunix.net/uid-26495963-id-3066282.html 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在...

沙米笔记
2016/08/25
144
0
Linux文件系统详解

一、Linux文件系统 在Linux中,所有的设备都是文件。文件的类型是根据文件头字段来判断,而非文件的后缀名。 用户配置文件:~/.bashrc ~/.bashprofile ~/.bashlogout 全局配置文件:/etc/pr...

zengxiantao1994
2017/09/26
0
0
马哥linux分享之Linux三剑客之sed和awk的基本应用

http://www.magedu.com/ sed、awk和grep被称为Linux的三剑客,本文主要讲述sed和awk的基本应用,关于grep和正则表达式的应用,请移步本人的另外一篇博文,链接为http://wangfeng7399.blog.51...

小小295813080
2014/08/25
1K
0
linux运行及init详解

linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用。 对于那些在DOS/Win9x/NT 平台下的高级用户而言,linux 似乎是一个怪物。没有config.sys ,没有autoexec.bat,具有...

向日葵饼干
2014/05/22
105
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
17分钟前
1
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
19分钟前
4
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
22分钟前
3
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
27分钟前
4
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
51分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部