Slackware 13.1 启动展开

本文将对kernel装载完成时,对init进程启动的一系列过程作一个展开学习,其实这一过程也就是一系列的脚本执行的过程,这其中

涉及到了运行级别的概念,本文分析的的init 启动方式是BSD式的,至于像RedHat的Sys V的方式,分析展开的过程类似,文中有未

尽详细的地方希望和大家讨论交流。

 

 

Slack:~$ pstree -np

init(1)-+-udevd(790)-+-udevd(1711)

            |                       `-udevd(1712)

            |-syslogd(1327)

            |-klogd(1331)

            |-inetd(1470)

            |-sshd(1478)

            |-acpid(1485)

            |-dbus-daemon(1497)

            |-hald(1502)---hald-runner(1503)-+-hald-addon-inpu(1522)

            |    .......

init 进程号为1,是由kernul 启动的第一个进程,之后产生(spawn)的所有进程都是 init 的子孙(descendant),像在shutdown、reboot

的时候的SIGTERM和SIGKILL信号也是由init 进程向所有后裔进程发出的。man init 可知运行级(runlevel)是一种允许一组特定的启动和退出

的系统软件层的配置。有效的运行级为:0-6,S,s,其中S 和s 是一样的,s 是 single,即单用户模式,当然7-9的运行级也是合法的,只是不常

见。运行级0 是用于停止系统,运行1 是指单用户模式,运行级6 用于重启系统,init 命令就可以用于有不同的运行级之间切换。不同的是

Slackware 是把运行级4 作为图形模式的。

 

init 的配置文件是/etc/inittab,inittab的作用是为init 进程定义了一系列的入口,

 

    24  id:4:initdefault:      其中4 定义了了默认运行级别是进入图形模式

 

    27  si:S:sysinit:/etc/rc.d/rc.S    init 首先执行rc.S 脚本,sysinit 指定有系统启动时执行并且忽略运行级别,rc.S中将挂载 /proc, /sys, /swap

并且加载内核模块,后面详细分析

 

    30  su:1S:wait:/etc/rc.d/rc.K     1S指定在用户模式中执行,wait 指定在系统执行完 rc.K 才继续往下执行,这里主要定义单用户模式下的

一些环境变量

 

    33  rc:2345:wait:/etc/rc.d/rc.M   多用户模式下执行rc.M 脚本,启动一些重要的服务和用户进程如Apach, mysql, X window,后面详细分析

 

    36  ca::ctrlaltdel:/sbin/shutdown -t5 -r now     俗称三指礼,指按下ctrl + alt + del 时触发的事件,这里定义的事情是重启系统,但

 

Slack:~$ cat /proc/sys/kernel/ctrl-alt-del

0

在/proc 中配置了kernel 不向init 进程发送这三个按键的消息

 

    72  x1:4:respawn:/etc/rc.d/rc.4        运行级为4时,startx

 

 

有一些不常用的服务图中笔者作了省略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值