Centos启动流程及服务脚本(work)

centos启动流程

简单流程简介:

POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init –>(/etc/inittab, /etc/init/*.conf) –> 设定默认运行级别 –> 系统初始化脚本 –> 关闭或启动对应级别下的服务 –> 启动终端

流程详解:分为五大阶段

第一阶段:硬件引导启动

通过ROM中的BIOS的自检程序一次查找到第一个有引导程序的设备就是本次要用到的设备

第二阶段:GRUB启动引导阶段

对其设备中的MBR中的bootloder(引导加载程序)加载GRUB的Stage 1,由于stage 1 阶段是要加载stage2阶段来识别gurb.conf文件,来对用户提供一个选择内核的菜单,但是现在stage 1 还并不能识别stage 2 的文件系统,因此要通过stage 1.5先加载文件系统驱动,让stage 1能识别stage 2 的文件系统,此时stage 1 才能访问到stage 2 。 

GRUB.conf文件为用户体统一个菜单,让用户选择要启动的内核后装载到RAM的特定空间中,对内核文件进行解压,展开,之后就由Kernel来进行操作

第三阶段:内核引导阶段

内核文件在内存中解压展开完成之后,内核先对自身进行初始化:

1、探测可识别到的所有硬件设备

2、加载硬件驱动程序

此时可能内核中并不能识别到根文件系统的驱动,就要由ramdisk来当桥梁,通过加载ramdisk来加载根之后,真正的根也就被加载上了。

ramdisk:在操作系统安装的时候生成的,他会扫描当前系统中磁盘分区的系统,在记录在此虚拟根文件中,由于ramdisk文件在/boot下,因此可直接加载ramdisk,从而加载了根的文件系统

3、识别到根文件系统之后以只读的方式挂载根文件系统

4、根挂载之后内核就可以运行第一个应用程序(/sbin/init),再由它来接手开机的流程.

第四阶段:init程序

1、init程序接手后运行第一个脚本,/etc/inittab,  此文件定义当前系统级别。

2、再一次运行/etc/init/*.conf所有脚本文件,

其中,/etc/init/rcS.conf文件用来运行系统初始化脚本文件/etc/rc.d/rc.sysinit

再由/etc/init/rc.conf文件决定当前系统运行级别,在根据运行级别来运行相对应级别的脚本来管理需要关闭或启动的服务

/etc/init/rc.conf文件中定义当前系统运行级别来运行对应级别服务脚本文件

此代码运行的服务脚本于/etc/rc.d/rcN.d文件:

第五阶段:用户登录

Crond计划任务

1、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”

2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

二、添加模拟服务脚本文件

1、定义服务脚本文件,

        2、移动测试服务到chkconfig管理程序脚本目录中

        3、使用chkconfig -add 命令将测试服务添加到开机启动队列中

        4、可使用chkconifg–add、–del、–list,service  SERVICE  [start|stop|restart|status]进行对此服务管

原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/45749

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班