对 linux init.d的理解

linux在进入init时要经过几个步骤,服务器启动时流程

服务器加电自检→加载内核→驱动硬件→启动进程→读取配置

firmware→boot/oader→kernel→init→/etc/inittab→initdefault→/etc/rc.d/rc.sysinit→/etc/rc.d/rc→/etc/rc.d/rcN.d (N=0-6)→username,password

Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6 ,具有不同的功能。不同的运行级定义如下: 
  # 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)
  # 1 - 单用户模式
  # 2 - 多用户,没有 NFS
  # 3 - 完全多用户模式(标准的运行级)
  # 4 – 系统保留的
  # 5 - X11 (x window)
  # 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 )

init.d这个目录是放软件包脚本的目录。在这个目录下可以启动,停止,重启服务。

系统会根据选择的运行级别来启动init.d目录中的脚本

在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活到init.d里的脚本。

k 和s的意思是  停止和启动   不同的级别运行的服务不同,  数字代表着优先顺序,数字越小,越早启动。

/etc/rc.d/init.d 是/etc/init.d的软连接

posted @ 2017-02-03 15:39  在下刘彦直  阅读(1648)  评论(0编辑  收藏  举报