本文详细介绍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 责编:豆豆技术应用
- Linux/Unix新闻
- Linux/Unix入门
- Linux/Unix命令
- Linux/Unix安装
- Linux/Unix编程
- Linux/Unix管理
- Linux/Unix桌面
- Linux/Unix内核
- Linux/Unix软件
- Linux/Unix发行版
- redhat/Fedora
- Ubuntu Linux
- IBM AIX
- FreeBSD
- Solaris
- NetBSD
- SCO Unix
- find基本用法
- ldd命令原理及用法例子
- su和sudo命令的区别与使用技巧
- Linux操作系统下的dd命令技巧
- 关于Top命令的参数详解
- 关于Tar命令的使用
- SSH实用技巧及常用命令使用
- Linux后台执行命令
- VI命令使用技巧集锦
- Vmstat命令列出的属性详解
- 如何查看及修改文件读写权限
- 最大可存储的单文件容量
- ext2/ext3文件系统介绍
- 常用压缩格式的压缩解压方法
- Linux系统的引导过程详细解析
- Configure参数解释说明
- Linux下硬盘和分区的命名方法
- 硬链接与软链接的区别
- 权限和所有权模型
- 存储设备的两种表示方法