剖析Linux系统启动过程(3)

都是大便

都是大便

2016-01-29 18:21

剖析Linux系统启动过程(3),剖析Linux系统启动过程(3)
第二部分:运行init
  init的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序,。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。在Redhat系统中,inittab的内容如下所示(以“###"开始的中注释为笔者增加的):  #  # inittab This file describes how the INIT process should set up  # the system in a certain run-level.  #  # Author: Miquel van Smoorenburg, 〈miquels@drinkel.nl.mugnet.org〉  # Modified for RHS Linux by Marc Ewing and Donnie Barnes  #  # 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 havenetworking)  # 3 - Full multiuser mode  # 4 - unused  # 5 - X11  # 6 - reboot (Do NOT set initdefault to this)  #  ###表示当前缺省运行级别为5(initdefault);  id:5:initdefault:  ###启动时自动执行/etc/rc.d/rc.sysinit脚本(sysinit)  # System initialization.  si::sysinit:/etc/rc.d/rc.sysinit  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  ###当运行级别为5时,以5为参数运行/etc/rc.d/rc脚本,init将等待其返回(wait)  l5:5:wait:/etc/rc.d/rc 5  l6:6:wait:/etc/rc.d/rc 6  ###在启动过程中允许按CTRL-ALT-DELETE重启系统  # Trap CTRL-ALT-DELETE  ca::ctrlaltdel:/sbin/shutdown -t3 -r now  # When our UPS tells us power has failed, assume we have a few minutes  # of power left. Schedule a shutdown for 2 minutes from now.  # This does, of course, assume you have powerd installed and your  # UPS connected and working correctly.  pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"  # If power was restored before the shutdown kicked in, cancel it.  pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"  ###在2、3、4、5级别上以ttyX为参数执行/sbin/mingetty程序,打开ttyX终端用于用户登录,  ###如果进程退出则再次运行mingetty程序(respawn)  # Run gettys in standard runlevels  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  ###在5级别上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行(respawn)  # Run xdm in runlevel 5  x:5:respawn:/etc/X11/prefdm -nodaemon   以上面的inittab文件为例,来说明一下inittab的格式。其中以#开始的行是注释行,除了注释行之外,每一行都有以下格式:   id:runlevel:action:process   对上面各项的详细解释如下:   1. id   id是指入口标识符,它是一个字符串,对于getty或mingetty等其他login程序项,要求id与tty的编号相同,否则getty程序将不能正常工作。   2. runlevel   runlevel是init所处于的运行级别的标识,一般使用0-6以及S或s。0、1、6运行级别被系统保留:其中0作为shutdown动作,1作为重启至单用户模式,6为重启;S和s意义相同,表示单用户模式,且无需inittab文件,因此也不在inittab中出现,实际上,进入单用户模式时,init直接在控制台(/dev/console)上运行/sbin/sulogin。在一般的系统实现中,都使用了2、3、4、5几个级别,在Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式。7-9级别也是可以使用的,传统的Unix系统没有定义这几个级别。runlevel可以是并列的多个值,以匹配多个运行级别,对大多数action来说,仅当runlevel与当前运行级别匹配成功才会执行。   3. action   action是描述其后的process的运行方式的。action可取的值包括:initdefault、sysinit、boot、bootwait等:   initdefault是一个特殊的action值,用于标识缺省的启动级别;当init由核心激活以后,它将读取inittab中的initdefault项,取得其中的runlevel,并作为当前的运行级别。如果没有inittab文件,或者其中没有initdefault项,init将在控制台上请求输入runlevel。   sysinit、boot、bootwait等action将在系统启动时无条件运行,而忽略其中的runlevel。   其余的action(不含initdefault)都与某个runlevel相关。各个action的定义在inittab的man手册中有详细的描述。   4. process   process为具体的执行程序。程序后面可以带参数。
展开更多 50%)
分享

猜你喜欢

剖析Linux系统启动过程(3)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程(3)

剖析Linux系统启动过程

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

剖析Linux系统启动过程(2)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程(2)

剖析Linux系统启动过程(4)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程(4)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

剖析Linux系统启动过程(5)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程(5)

剖析Linux系统启动过程(1)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
剖析Linux系统启动过程(1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

安装iptraf 失败

安装iptraf 失败

Photoshop鼠绘教程:绘制中国韵味水墨画_墨菊

Photoshop鼠绘教程:绘制中国韵味水墨画_墨菊
下拉加载更多内容 ↓