今天看《鸟哥》,看到linux的启动这一回,发现我的10.04下面没有init的配置文件
inittab。从网上查资料发现, 原来,在Ubuntu 6.1之后,开始用upstart替代init,主要脚本
都在/etc/event.d下面,默认情况下,没有/etc/inittab文件。不过这种情况也只持续到9.10.
Ubuntu10.04下你是找不到upstar文件的。Ubuntu下的启动有3个特点:
1 没有标准init进程中的/etc/inittab以及rc.sysinit文件。
2 没有标准Upstart中初始化用的rc-default文件以及事件触发目录/etc/event.d。
3 Ubuntu已经不再严格区分各个启动等级(Runlevel)了。
xintong@ubuntu:~/birdtest$ runlevel N 2
0 (halt the system)
1(singal-user mode)
2 through 5(various multi-user modes)
6 (reboot the system)
从2到5是一样的。
在Ubuntu中,和init有关的就是/etc/init /etc/init.d/etc/rcN.d了(N为启动等级Runlevel,S代表单用户模式)。
注意。这里的init,指的是基于Upstart的初始化进程。Ubuntu中的启动流程如下:
1 init读取/etc/init/rc-sysinit.conf文件来确定启动等级,关键内容如下:
# Default runlevel, this may be overriden on the kernel command-line # or by faking an old /etc/inittab entry env DEFAULT_RUNLEVEL=2
3 随后rc根据参数执行/etc/rcN.d里面的脚本
4 rcN.d里面的脚本指向init.d下的脚本,从而让某服务启动
因为Ubuntu中对Runlevel的划分不再明显,所有通过更改Runlevel来裁剪服务的话有时无效,这时候可以通过
更改/etc/rcN.d中的脚本来实现。