本文地址:http://blog.csdn.net/spch2008/article/details/9468537
linux通过设置不同的run level级别,使系统启用不同的服务,从而使linux的使用环境有所不同。
0 - halt 停机 1 - single user mode 单用户,系统故障维护时使用 2 - Multi-user,without NFS 多用户,没有NFS 3 - Fullmulti-user mode 完全多用户 4 - unused 系统保留 5 - X11 加载X Window 6 - reboot 重启内核加载完毕以后,执行/sbin/init,创建第一个进程,该进程负责配置系统环境,启动服务等。
init读取/etc/inittab配置文档,进行相应操作。
id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6
第一行: id:5:initdefault,配置的level为5。
第二行: si::sysinit:/etc/rc.d/rc.sysinit 调用/etc/rc.d/rc.sysinit进行系统初始化。
接下来,根据run level 5,执行/etc/rc.d/rc5.d中的程序。
K01dnsmasq K73ypbind K89netplugd S08iptables S26lvm2-monitor K02avahi-dnsconfd K74ntpd K89pand S08mcstrans S28autofsrc5.d目录中的脚本都是一些链接,这些链接的格式为:
可见,这些脚本都连接到了/etc/init.d/文件夹中的相应脚本,rcN.d目录都连接到同一个目录下脚本,避免重复。
lrwxrwxrwx 1 root root 17 Mar 30 2011 K01dnsmasq -> ../init.d/dnsmasq lrwxrwxrwx 1 root root 24 Mar 30 2011 K02avahi-dnsconfd -> ../init.d/avahi-dnsconfd lrwxrwxrwx 1 root root 17 Mar 30 2011 K05anacron -> ../init.d/anacron lrwxrwxrwx 1 root root 17 Mar 30 2011 K05wdaemon -> ../init.d/wdaemon
注意到,S99local连接rc.local脚本文件,可以在开机时执行用户设定的自定义功能,比如添加路由,删除路由等。
lrwxrwxrwx 1 root root 11 Mar 30 2011 S99local -> ../rc.local lrwxrwxrwx 1 root root 16 Mar 30 2011 S99smartd -> ../init.d/smartd
同时注意到:/etc/rc.local, /etc/init.d都连接到了/etc/rc.d/下相应文件。