Linux根文件系统:/etc/inittab文件分析

1. /etc/inittab文件的做用

Linux内核启动完成后,内核经过启动第一个用户进程(init进程)来启动其余用户记的进程或服务,init进程是Linux系统中全部进程的父进程。shell

init进程将解析inittab文件,运行操做系统的配置脚本,对Linux系统进行初始化。服务器

2. /etc/inittab文件的格式分析

inittab文件是一个不可执行的文本文件,它被按照固定的格式书写,以供init进程识别。inittab的每一行都是一个登记项,每一个登记项的结构都相同,具体以下:ide

identifier :  run_level  :  action  :  process
(1)identifier  
identifier登记项标识符,最多为4个字符。用于唯一地标识/etc/inittab文件中的每个登记项。

(2)run_level  spa

run_level系统运行级,用于指定相应的登记项在哪个运行级中被处理。若是该字段为空,那么相应的登记项将适用于全部的运行级。在该字段中,能够同时指定一个或多个运行级,其中各运行级分别以数字0.1.2.3.4.5.6表示,且无需对其进行分隔。操作系统

runlevel   0             设计

让init关闭全部进程并终止系统。rest

runlevel   1blog

用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登陆用户的状况下不能进行更改的文件,改runlevel的编号1也能够用S代替。进程

runlevel   2ip

容许系统进入多用户的模式,但并不支持文件共享,这种模式不多应用。

runlevel   3

最经常使用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。

runlevel   4

通常不被系统使用,用户能够设计本身的系统状态并将其应用到runlevel。

runlevel   5

将系统初始化为专用的X Window终端。对功能强大的Linux系统来讲,这并非好的选择,但用户若是须要这样,也能够经过在runlevel启动来实现该方案。

runlevel   6

关闭全部运行的进程并从新启动系统。

(3)action

action字段描述其后的process的运行方式。经常使用的action字段以下:

respawn

init应该监视这个进程,即便其结束后也应该被从新启动。

wait

init应该运行这个进程一次,并等待其结束后再进行下一步操做。

once

init只运行一次该进程。

boot

系统启动时运行该进程。

bootwait

在系统启动时运行,init等待进程完成。

ctrlaltdel

当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。

sysinit

在运行boot或bootwait进程以前运行。

powerfail

当init收到SIGPWR信号时运行。

powerokwait

当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行。

powerwait

当收到SIGPWD信号,而且init等待进程结束时运行。

(4)process

process字段,表示所要执行的shell命令。任何合法的shell语法均适用于该字段。

3. 举例

简易的inittab文件,示例以下:

 

#first:run the system script file::sysinit:/etc/init.d/rcS         #系统开机或从新启动,执行rcS文件::askfirst:-/bin/login   #系统启动后,运行登陆程序::ctrlaltdel:-/sbin/reboot   #按下组合键“ctrl+alt+del”,重启Linux系统#umount all filesystem::shutdown:/bin/umount -a -r   #系统关机时,卸载全部文件系统#restart init process::restart:/sbin/init                    #重启init进程
相关文章
相关标签/搜索