第一只进程init及配置文件/etc/inittab与runlevel

来源:互联网 发布:斯大林格勒战役 知乎 编辑:程序博客网 时间:2024/06/12 01:26
第一只进程init及配置文件/etc/inittab与runlevel

机子在加电完成硬件检测及驱动的加载后,内核就会启动第一只init进程,init进程的PID为0,init进程的主要工作是
为其他进程的启动准备执行网络环境,包括,主机名,网络设定,文件系统及其他服务的启动,init进程的配置文件位于
/etc/inittab,而配置文件内的一项重要设定就是runlevel。
runlevel:
    level 0:halt 关机
    level 1:single user model 单用户模式,用户系统出现问题的时候
    level 2:Multi-user without NFS
    level 3:Full-multi-user model文本模式
    level 4:系统保留
    level 5:图形化界面模式
    level 6:重启
    

/etc/inittab的内容与语法


    这个文件语法是利用冒号将配置分隔为四个档位
    [配置项目]:[run level]:[init 的动作行为][命令项目]
    1.配置项目:最多四个字节
    2.代表的主要工作项目,只是一个简单的代表说明。
    3.init 的动作项目:主要可以进行动作项目意义有:
        initdefault:默认的run level配置值
        sysinit:代表系统初始化的动作项目
        ctrlaltdel:代表[ctrl]+[alt]+[del]三个按键是否可以重新启动配置
        wait:代表后面栏位的配置的命令项目必须要运行完毕才能继续底下其他的动作
        respawn:代表后面栏的命令可以无限制的再生。
    4.命令项目:通常是一些scripts
    
init 的处理流程
事实上/etc/inittab的配置优点类似shell scripts,应为该文件的配置也是一行一行的从上往下走,
一下是Centos的init依据inittab配置处理流程:
    1.先去的runlevel
    2.使用/etc/rc.d/rc.sysinit进行系统初始化
    3.由于runlevel是3,因此只进行[13:3:wait:etc/rc.d/rc 5],其他略过
    4.配置好[ctrl]+[alt]+[del]这组的组合键功能
    5.配置不断电系统的pf,pr
    6.启动mingetty的六个终端(tty1~tty6)
    7.最终以Full-multi-user进入系统

init处理系统初始化流程(/etc/rc.d/rc.sysinit)
/etc/inittab里头有一句[si:sysinit:/etc/rc.d/rc.sysinit]表示开始加载各项系统服务,准备好整个系统环境,主要利用
/etc/rc.d/rc.sysinit这个shell scripts来设定好系统环境。他的主要工作是一下几项:
    1.取得网络环境
    2.测试挂载内存装置/proc及USB装置/sys:
    3.决定是否启动SELinux:
    4.启动系统的随机数生成器
    5.设定终端机(console)字形
    6.设定显示开机过程中的欢迎画面
    7.设定时间与时区:需读入/etc/sysconfig/clock设定值
    8.接口设备的侦测与PnP参数测试
    9.用户自定义模块的加载
    10.加载核心的相关设定
    11.设定主机名与初始化电源管理模块(ACPI)
    12.初始化软件磁盘整列:主要透过/etc/mdadm.conf
    13.初始化LVM的文件系统
    14.以fsck检验磁盘文件系统:会进行文件系统 filesystem check
    15.进行磁盘配额quota的转换
    16.重新以可读写模式挂载系统磁盘
    17.启动quota功能
    18.启动系统虚拟随机数生成器
    19.清除启动过程当中的缓存文件
    20.将启动相关资讯加载/var/log/dmesg文件中。

启动系统服务于相关启动配置文档(/etc/rc.d/rc.N & /etc/sysconfig)
    加载内核让整个系统准备接受命令来工作,再经过/etc/rc.d/rc.sysinit的系统模块与相关硬件信息的初始化后,你的系统
应该已经顺利工作了,依据/etc/inittab文件里的run level配置值,就你可以决定启动的服务项目了。run level要运行的各项脚本放置在

/etc/rc.d/rc3,目录中以K 开头文件都是不启动的脚本,以S开头的都是启动的脚本。如下图:


我们知道服务的启动主要是以/etc/init.d/servers_name {start|stop}来启动与关闭的,那么由上图可以知道/etc/rc.d/rc3中的文件都是链接到/etc/init.d/
下的相关文件,实际也是到、/etc/init.d/目录启动相关服务。

系统启动过程用到的主要配置文件:/etc/sysconfig/目录下
0 0