init是Linux系统执行的第一个进程,进程ID为1,是系统所有进程的起点,主要用来执行一些开机初始化脚本和监视进程。
init 0 - 停机(千万不能把initdefault 设置为0 )
init 1 - 单用户模式
init 2 - 多用户,没有 NFS
init 3 - 完全多用户模式(标准的运行级)
init 4 - 没有用到
init 5 - X11 (xwindow)
init 6 - 重新启动 (千万不要把initdefault 设置为6 )
Linux系统在完成内核引导以后就开始运行init程序,init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它由若干行命令组成。在RHEL4系统中,inittab配置文件的内容如下所示。
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# 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 have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
//表示当前默认运行级别为5,启动系统进入图形化界面
id:5:initdefault:
//启动时自动执行/etc/rc.d/rc.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将等待其返回
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
//在启动过程中允许按[Ctrl+Alt+Del]重启系统
# 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程序
# 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图形方式登录界面,并在退出时重新执行
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
|
inittab配置文件每行的基本格式如下。
id:runlevels:action:process
|
其中某些部分可以为空,下面我们逐一介绍。
1.id
1~2个字符,配置行的唯一标识,在配置文件中不能重复。
2.runlevels
配置行适用的运行级别,在这里可填入多个运行级别,比如12345或者35等。
Linux有7个运行级别。
l 0:关机。
l 1:单用户字符界面。
l 3:具有网络功能的多用户字符界面。
l 4:保留不用。
l 5:具有网络功能的图形用户界面。
l 6:重新启动系统。
3.action
init有如下几种行为, init行为:
行为
|
描述
|
respawn
|
启动并监视第4项指定的process,
若process终止则重启它
|
wait
|
执行第4项指定的process,并等待它执行完毕
|
once
|
执行第4项指定的process
|
boot
|
不论在哪个执行等级,系统启动时都会
运行第4项指定的process
|
bootwait
|
不论在哪个执行等级,系统启动时都会运
行第4项指定的process,且一直等它执行完备
|
off
|
关闭任何动作,相当于忽略该配置行
|
ondemand
|
进入ondemand执行等级时,执行第4项指定的process
|
initdefault
|
系统启动后进入的执行等级,该行不需要指定process
|
sysinit
|
不论在哪个执行等级,系统会在执行boot
及bootwait之前执行第4项指定的process
|
powerwait
|
当系统的供电不足时执行第4项指定的
process,且一直等它执行完毕
|
powerokwait
|
当系统的供电恢复正常时执行第4项指定
的process,且一直等它执行完毕
|
powerfailnow
|
当系统的供电严重不足时执行第4项指定
的process
|
ctrlaltdel
|
当用户按下【Ctrl+Alt+Del】时执行的操作
|
kbrequest
|
当用户按下特殊的组合键时执行第4项指
定的process,此组合键需在keymaps文件定义
|