原文连接: 点击打开链接
我的前面的博文已经提到了linux系统的启动过程,但是由于各distribution的差异,再具体到init进程启动以后OS启动过程会有所差异。据了解Ubuntu9.04以后不再采用/etc/inittab启动,而是采用init和upstart相结合的方式。
标准的linux启动顺序是:
(1)init根据/etc/inittab来配置系统-->
(2)执行脚本/etc/rc.d/rc.sysinit初始化-->
(3)然后根据启动等级执行/etc/init.d/rc,执行等级作为参数传入
(4)跳到/etc/rcN.d/(N为执行等级),执行里面的文件,其中大部分为指向/etc/init.d/下面的文件,启动相关服务。
http://www.starfirezhang.com/archives/33
http://blog.csdn.net/vecri/article/details/4735601
由于需要和第三方软件兼容,现在的ubuntu中使用的是System V Init 和upstart机制结合的方式。观察ubuntu10.04的文件系统可以发现:
Ubuntu启动顺序是:
(1)init读取/etc/init/rc-sysinit.conf文件来确定启动等级,关键内容如下:
......
(2)传递参数给/etc/init.d/rc
(3)根据参数执行/etc/rcN.d/下面的链接文件,这点跟其他的是相同的。注意,根据运行级别来裁剪服务在ubuntu中可能会失效,但是可以改写/etc/rcN.d/下面的脚本来实现。
参考: