1、Linux开机顺序

借用网上的一张开机顺序图片,明了的展示开机启动顺序

Linux运行等级了解(入门级)_第1张图片

2、Linux的运行级别

运行级别:不同级别下启动的服务不同,判定级别不同。

0-6:7个级别。

0:表示halt,关机

1:单用户模式 single user mode,直接登陆管理员,无需密码。

2:多用户模式,multi user mode,no nfs。不启用nfs。

3: 正常多用户模式, multi user mode ,text mode,文本模式。

4:reserved,保留级别,此前尚未定义使用。

5:正常多用户模式,multi user mode,graphic mode,图形模式。

6:表示reboot,重启。

默认级别,由inittab文件来控制。inittab中定义了默认运行级别,它是内核加载完成后运行init多 要读取的第一个配置文件。

这7个运行级别,默认对应着Linux目录结构中/etc/rc.d/下的7个rc#.d

Linux运行等级了解(入门级)_第2张图片

Linux的启动全在这里,配合上面的开机流程顺序,结构一目了然。

3、Linux运行级别的切换机制。

在每个rc#.d目录下,都有分别以K开头和以S开头的脚本文件。

Linux运行等级了解(入门级)_第3张图片

以K开头的文件意义为,当运行等级转换成该等级后,将会kill掉这些服务,也就是服务名stop。相应的,以S开头的脚本则是转换成该等级后,将会启动的脚本。

以上动作的执行者为/etc/rc.d/下的rc脚本,透过这个脚本可以看出linux运行等级转换机制以及动作执行顺序。

Linux运行等级了解(入门级)_第4张图片

在等级切换之后,首先执行kill脚本,将rc#.d目录下以K开头的服务关闭。K或者S后面都会跟一个数字,在执行for i in /etc/rc$runlevel.d/K*这个循环时,脚本将会以K后面的数字从小到大进行排列,那么关闭也就是按照这个数字从小到大顺序进行的,同理,Start脚本也是如此。



由此说来,为什么init0是关机,init6是重启呢?对比一下rc0.d和rc6.d就明了。

Linux运行等级了解(入门级)_第5张图片

Linux运行等级了解(入门级)_第6张图片

他们虽然调用的同一个脚本,但是因为调用时脚本名称不同,所以根据下面/etc/rc.d/init.d/halt脚本的内容可以知道,这是两个不同的动作。

Linux运行等级了解(入门级)_第7张图片

4、与runleve相关的常用命令

runlevel:查看当前系统的运行等级。

who -r:查看当前系统的运行等级。

init #:切换运行等级。