浏览 254 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-06-16 关键字: gentoo linux init
首先推广一下javaeye的 gentoo圈子
介绍
init 是由内核启动的用户进程,处于系统引导的最后一步。 详解
以下转自 linuxsir 的 jarchun
写的文章,分析了init启动时的一些细节: 下面是我的gentoo的/etc/inittab文件:
该文件有一个基本类型的指令,它们指定命令行,命令行所采取的动作,在何种运行等级下激活命令。这引起命令行的格式大体如下:
id:runlevels:action:process
id是任意一个名称(具体是什么并不重要),runlevels是一个数字串(代表运行等级),action描述何时执行命令,process指定执行的实际命令。
拿启动agetty的命令行举例:
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
该命令告诉init,它应该在引导后以运行等级1-5运行命令/sbin/agetty 38400 tty1。动作标记respawn表示命令在退出时重新运行(当用户在shell输入exit的时候)。
·respawn:启动命令并监视命令的执行,当进程退出时,再次执行该命令(通常用于虚拟终端设备上的登录提示)。
·wait:进入指定运行等级时,启动进程。init会停下来,直到执行完成。这个标记用于设置特定等级下软件的启动。
·once:进入指定的任一运行等级时,启动一次进程。 .boot:当系统启动时执行,这种类型的执行忽略runlevel. .bootwait:当系统启动时执行,init进程等待这些脚本执行完成,象/etc/rc.
·initdefault:这种类型的项指定在系统引导时进入哪个运行等级。
.sysinit:在boot或者bootwait之前启动,这种类型的执行忽略runlevel. ·powerwait:这类指令给出在电源不足时需要执行的命令。init直到进程完成后才继续工作。
·powerfail:与powerwait类似,但init不等待进程完成。 ·powerworkwait:电源正常后执行。init暂停,直到进程结束。 ·powerfailnow:当便携机电池或外部UPS电池电量不足时执行。 ·ctrlaltdel:指定init在捕获ctrl+alt+del组合键时执行的命令。 ·kbdrequest:把特殊动作映射到特定的按键。Debian中的是alt+UpArrow。 从上面的分析可以看到:
id:3:initdefault:
#系统的缺省级别是3
si::sysinit:/sbin/rc sysinit
#系统启动时自动执行脚本/sbin/rc sysinit
l3:3:wait:/sbin/rc default
#当系统运行级别是3的时候,init等待/sbin/rc default执行完
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
#在1-5运行级别的时候运行/sbin/agetty,如果进程退出,再次执行/sbin/agetty ca:12345:ctrlaltdel:/sbin/shutdown -r now
#在1-5运行级别按下ctrlaltdel,那么系统就shutdown now!!!
x:a:once:/etc/X11/startDM.sh
#不管是什么runlevel,都会执行/etc/X11/startDM.sh,启动X,只有启动一次
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |



