第九节 Linux服务器启动流程

一.启动流程


  • 1.bios找到磁盘上的mbr主引导扇区
  • 2.进入grub界面选择相应的启动内核
  • 3.读取kernel内核文件-/boot/bmlinuz-*
  • 4.读取init的镜像文件-/boot/initrd-*
  • 5.init去读取/etc/inittab
  • 6.读取启动级别(id:3:initdefault)
  • 7.读取/etc/rc.d/rc.sysinit,完成时钟设置,主机名的设置,分区表的挂载(/etc/fstab)
  • 8.读取/etc/rc.d/rc脚本,通过该脚本吸收3级,然后启动/etc/rc.d/rc3.d下所有以S开头的服务,不启动该目录下以K开头的服务
  • 9.读取/etc/rc.d/rc.local脚本
  • 10.进入登录界面

一.初始化阶段:
- 1.grub引导界面
- 2.识别硬件
- 3.初始化驱动

二.加载/etc/rc.d/rc.sysinit系统初始化脚本
- 4.进入欢迎界面
- 5.设置时钟
- 6.设置主机名
- 7.挂载文件系统
- 8.挂载光驱
- 9.进入3级别
- 10.启动虚拟内存
- 11.设置磁盘阵列

三.加载/etc/rc.d/rc进程管理脚本
- 12.设置防火墙
- 13.检测硬件变化
- 14.启动网络服务
- 15.启动3级别下允许启动的进程(比如ssh)
- 16.进入登录界面


运行级别

0 关机
1 单用户
2 不支持nfs(网络文件系统)
3 字符界面
4 未被使用
5 图形界面
6 重启
更改系统运行级别: init 0 | 3 | 5 |6
查看运行级别: runlevel


如何设置服务脚本在某个级别下开启或关闭:

  • 1.查看sshd服务在所有级别下的开启关闭状态
    chkconfig –list sshd
  • 2.sshd服务在3,5级别下开启
    chkconfig –level 3 sshd on
  • 3.sshd服务在3,5级别下关闭
    chkconfig –level 3 sshd off
  • 4.快速设置sshd服务在2,3,4,5级别下开启
    chkconfig sshd on
  • 5.快速设置sshd服务在2,3,4,5级别下关闭
    chkconfig sshd off

源代码软件

  • 1.服务脚本
    /usr/local/apache2/bin/apachectl
  • 2.开启
    /usr/local/apache2/bin/apachectl start|stop
  • 3.开机启动
    vi /etc/rc.d/rc.local
    /usr/local/apache2/bin/apachectl start

源代码安装三部曲:

  • 1.生成配置文件
    ./configure –prefix=/usr/local/apache
  • 2.编译
    make
  • 3.安装
    make install

RPM软件包

  • 1.脚本服务
    /etc/rc.d/init.d/httpd
  • 2.开启或关闭
    service httpd start|stop
  • 3.开机启动
    chkconfig –level 3 httpd on

自定义服务脚本开机启动

一.把服务脚本改造成标准rpm脚本

#chkconfig: 2345 90 20
#description:Mytest server daemon

二.通过service把自定义脚本进行开启和关闭

service mytest start | stop | restart

三.通过chkconfig把自定义脚本设置开机启动

chkconfig mytest on
chkconfig mytest off


自定义服务脚本开机启动(二)

直接在/etc/rc.d/rc.local里设置启动的脚本语句即可


自定义服务脚本开机启动(三)

单独制作一个脚本文件,然后配置到init.d文件夹下即可,方法如下:

1.自己定义脚本格式如下:

必须添加的

 #!/bin/sh #chkconfig: 2345 80 80 #description: auto start web server 
  

2.把定要好的脚本赋可执行权限

chmod +x <自己的脚本>

3.copy 到 /etc/init.d/

cp <自己的脚本> /etc/init.d/
chkconfig –add <脚本名> // 添加
chkconfig –list <脚本名> // 查看
这两种启动方式 一定注意 环境变量

4.测试开启mytest

service mytest start

你可能感兴趣的:(shell)