博文参考:

http://www.178linux.com/44483
http://os.51cto.com/art/201407/446819.htm
http://ch666.blog.51cto.com/10870222/1757134
http://www.mamicode.com/info-detail-1165638.html

图片描述

系统启动流程

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

加电自检POST

clipboard.png

clipboard.png

Blos启动引导阶段

自检通过;按照次序查找引导设备Blos,按F2或Del键进入Blos,可以调整硬盘的启动顺序。Blos在找到硬盘上的MBR,读取其中的Bootloader

GRUB引导阶段

stage1:即写入mbr中存储的bootloader程序。它的任务就是将stage1_5(此时并不能算是磁盘分区/boot/grub/下的stage1_5,因为stage1无法识别文件系统)载入内存执行。
clipboard.png

stage1_5:位于mbr之后的扇区,通过提供基本文件系统驱动让stage1中的bootloader程序能识别磁盘分区/boot/grub/上的stage2文件并载入内存执行。

clipboard.png

配置 /boot分区

clipboard.png

stage2:这个程序主要给用户提供一个比较友好的启动菜单,而后去加载位于同一个磁盘分区/boot/的内核文件( vmlinuz-2.6.32-573.el6.x86_64)

clipboard.png

clipboard.png

clipboard.png

clipboard.png

2 grub的编辑命令

        b:boot,启动

        e:edit,编辑选中的项

        o:在选中行的下一行新加一行

        O:在选中行的上一行添加一行

        d:删除选中行

        ESC:可以退出编辑界面进入主界面

加载内核阶段

clipboard.png

启动进程/sbin/init

clipboard.png

clipboard.png

clipboard.png

详解脚本 /etc/rc.d/rc.sysinit

clipboard.png

sysinit脚本执行完成,系统还需要启动各种服务,这样主机才可以提供相关的网络和主机功能,因此要根据相应的运行级别,运行相应的系统服务。

系统服务

详解目录/etc/rc.d/rc3.d

clipboard.png

执行/etc/rc.d/rc脚本。该文件定义了服务启动的顺序是先K后S,而具体的每个运行级别的服务状态是放在/etc/rc.d/rc*.d(*=0~6)目录下,所有的文件均是指向/etc/init.d下相应文件的符号链接。rc.sysinit通过分析/etc/inittab文件来确定系统的启动级别,然后才去执行/etc/rc.d/rcN.d下的文件。
以rc3.d为例:
          /etc/rc.d/rc3.d目录,该目录下的内容全部都是以 S 或 K 开头的链接文件,都链接到"/etc/rc.d/init.d"目录下的各种shell脚本。S表示的是启动时需要start的服务内容,K表示关机时需要关闭的服务内容,后面的数字代表优先次序。

clipboard.png

clipboard.png

等待用户登录

完成了系统服务的启动后,linux会启动终端或X-Window来等待用户登录,会执行"/sbin/mingetty",而且执行了6个,所以linux会有6个纯文本终端(tty1,tty2…),mingetty就是启动终端的命令。至此,系统就启动完毕了!

clipboard.png

系统服务管理

根据上面说明,我们可以知道,系统在启动后会根据想要的运行级别,运行相应的服务脚本,而这些系统服务的管理,可以用chkconfig来进行管理使用,这些服务脚本放置于/etc/rc.d/init.d中

chkconfig:跟新和确认系统服务信息

语法:chkconfig [–list] [–type type][name]:查看所有的服务列表详细信息

 chkconfig –add name :添加服务到系统服务

 chkconfig –del name:删除系统服务

 chkconfig –override name

 chkconfig [–level levels] [–type type] name <on|off|reset|resetpriorities>

 chkconfig [–level levels] [–type type] name

clipboard.png

手动配置系统启动服务

1、系统服务脚本特点:基本都可以提供start|stop|restart|status这几个状态值的接收

2、服务脚本存放位置

由上面的介绍可知,所有的系统服务脚本都放在/etc/rc.d/init.d文件夹中

clipboard.png

3、服务脚本的编写格式

clipboard.png

其中,有三行格式是必须要写上的#!/bin/bash,#/chkconfig,#description

chkconfig: runlevels SS KK【SS:表示开始运行的次序,KK:表示关闭程序的次序,-表示都不启动】

因此可以手动编写系统服务:

   (1)把服务脚本放置/etc/init.d目录下

   (2)使用chkconfig –add 添加到系统服务

   (3)重启系统让服务生效

系统服务的运行

  • service httpd start 启动服务

  • service httpd status 服务运行状态

  • service httpd stop 停止服务

  • service httpd restart 重启服务


达龙
250 声望19 粉丝

天才是重复次数最多的人!