运维总结——第五章

一、Linux内核启动流程

1.1 Systemd启动流程

  1. UEFi或BIOS初始化,运行POST开机自检
  2. 选择启动设备
  3. 引导装载程序, centos7是grub2,加载装载程序的配置文件:/etc/grub.d/,/etc/default/grub ,/boot/grub2/grub.cfg
  4. 加载initramfs驱动模块(可以实现根文件系统的挂载)
  5. 加载虚拟根中的内核
  6. 虚拟根的内核初始化,Centos7使用systemd代替init,第一个进程
  7. 执行initrd.target 所有单元,包括挂载 /etc/fstab
  8. 从initramfs根文件系统切换到磁盘根目录
  9. systemd执行默认target配置,配置文件/etc/systemd/system/default.target
  10. systemd执行sysinit.target初始化系统及basic.target准备操作系统
  11. systemd启动multi-user.target 下的本机与服务器服务
  12. systemd执行multi-user.target 下的/etc/rc.d/rc.local
  13. Systemd执行multi-user.target下的getty.target及登录服务
  14. systemd执行graphical需要的服务

1.2 grub工作流程

grub启动分为2个主要阶段,其中一阶段又分为2个小阶段,存储位置和功能如下:

第一阶段上半部分:存储在0磁道0扇区的446字节空间内。
第一阶段下半部分:存储在1扇区到2047扇区,存储2阶段的文件系统驱动,保证2阶段的文件可读。
第二阶段:存储在/boot/grub/grub.conf

1.3 Linux内核设计及特点

内核自身初始化过程:

  1. 探测可识别到的所有硬件设备
  2. 加载硬件驱动程序(借助于ramdisk加载驱动)
  3. 以只读方式挂载根文件系统
  4. 运行用户空间的第一个应用程序:/sbin/init

Linux内核特点:

  • 支持模块化:ko(内核对象),如:文件系统,硬件驱动,网络协议等。
  • 支持内核模块的动态装载和卸载。

内核组成部分:

  • 核心文件:/boot/vmlinuz-VERSION-release
  • 模块文件:/lib/modules/VERSION-release

1.4 systemd服务配置文件

systemd的服务配置文件通常由三部分组成:

字段 说明
[Unit] 定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等。
[Service] 与特定类型相关的专用选项;此处为Service类型
[Install] 定义由“systemctl enable”以及"systemctl disable"命令在实现服务启用和禁用时用到的一些选项。

[Unit]字段中常用的选项:

字段 作用
Description 描述信息
Documentation 帮助信息
After 定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反。
Before 定义unit的启动次序,表示当前unit应该早于哪些unit启动,其功能与After相反。
Requires 依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活
Wants 依赖到的其它units,弱依赖
Conflicts 定义units间的冲突关系

[Service]字段中常用的选项:

字段 选项
Type 定义影响ExecStart及相关参数的功能的unit进程启动类型
EnvironmentFile 环境配置文件
PIDFile 指明生成进程文件路径
ExecStartPre ExecStart前运行,可以有多条
ExecStart 指明启动unit要运行命令或脚本的绝对路径
ExecStartPost ExecStart后运行,可以有多条
ExecReload 指明重新加载unit配置要运行的命令或脚本
ExecStop 指明停止unit要运行的命令或脚本
KillSignal 以何信号杀死进程,默认SIGTERM
killMode 以何种方式杀死进程control-group | process | mixed | none
Restart 当守护进程意外杀死时,是否自动重启。

二、AWK

2.1 工作原理和流程

awk是文本处理三剑客重要的指令之一。其执行流程如下:

  1. 执行BEGIN{...}内的语句块;
  2. 从文件标准输入中读取一行;
  3. 以这行为输入执行awk指令内的语句;
  4. 判断是否到达文件末尾,如果未到达则重复步骤2和3;
  5. 执行END{...}内的语句块。

其中BEGIN和END都是可选语句块。

2.2 awk命令

awk命令格式:

awk [options] '[command]' [file]

常用选项:

-f [progfile]  # 从文件中读入
-F [fs]        # 指定分隔符
-v var1=aa var2=bb  # 指定变量

示例:

以: 为分隔符,对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值