slackware启动脚本详解

豆豆网   技术应用频道   2006年08月11日  【字号: 收藏本文

本文详细介绍slackware启动脚本详解

  我们知道,kernel成功启动之后,在init/main.c中调用execve执行程序/sbin/init。init进程被称为初始化进程,因为它负责系统的启动。

  我以我的slackware10为例(不光因为它是我用的套件,而且启动脚本十分清晰明了),讲一讲启动的具体过程:

  (史前时期)loadlin,grub,lilo把内核参数传给kernel,如(BOOT_IMAGE=Linux ro root=307),,存储在/proc/cmdline中。

  内核启动成功后,把它的参数传给1号进程(init),因为也许有一些参数应被用户程序解释。

  init进程将从上到下的读取/etc/inittab文件,只要状态符合当前运行级就会去执行脚本。

  inittab由几行组成,每行被三个冒号分隔成四个部分,每个部分具有不同的含义。格式如下:

  行标识符:状态:动作:命令

  行标识符是你的运行级脚本的名字,不能使用重复的行标识符。

  状态是表示运行级脚本何时应该执行的数字。状态由0,1,2,3,4,5,6和S一个或多个数字字母组成。如果状态为空,就是系统启动必须执行的脚本。

  下面是slackware的状态定义:

  0 = halt

  1 = single user mode

  2 = unused (but configured the same as runlevel 3)

  3 = multiuser mode (default Slackware runlevel)

  4 = X11 with KDM/GDM/XDM (session managers)

  5 = unused (but configured the same as runlevel 3)

  6 = reboot

  S同状态1相同。

  动作有once, wait, respawn, sysinit, crtlaltdel, initdefault组成,说明了init执行脚本的方式。

  once:init在进入后只执行一次。init不等待命令的结束。

  wait:和once不同的是,init等待命令的结束。

  respawn:命令结束后会被重起。

来源:www.linuxsir.org    作者:liquid_zigong    责编:豆豆技术应用

正在加载评论...