Linux内核启动完成后,内核经过启动第一个用户进程(init进程)来启动其余用户记的进程或服务,init进程是Linux系统中全部进程的父进程。shell
init进程将解析inittab文件,运行操做系统的配置脚本,对Linux系统进行初始化。服务器
inittab文件是一个不可执行的文本文件,它被按照固定的格式书写,以供init进程识别。inittab的每一行都是一个登记项,每一个登记项的结构都相同,具体以下:ide
identifier : run_level : action : process |
(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语法均适用于该字段。
简易的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进程 |