内容预知
2.1 Linux中新Systemd与init的概述 ,比较
1.引导过程的学习
Linux的引导过程(简单分为五个阶段):
服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit, 中央处理器)、内 存、显卡、键盘等设备进行初步检测,检测成功后根据 预设的启动顺序移 交系统控制权,大多时候会移交给本 机硬盘。 网络启动 加载 网络批量pxe
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区 中 MBR(Master Boot Record, 主引导记录)的设 置,将系统控制权传递给包含操作系统引导文件的分 区;或者直接根据 MBR 记录中的引导信息调用启动菜单 (如 GRUB)。
总结:运行放在MBR扇区里的启动 GRUB引导程序
对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是 使用最为广泛的多系 统引导器程序。系统控制权传递给 GRUB 以后,将会显 示启动菜单给 用户选择,并根据所选项(或采用默认 值)准备加载 Linux 内核文件,然后将系统控制权转交 给 内核。需要注意的是,CentOS 7 采用的是 GRUB2 启 动引导器。
总结:GRUB引导程序通过读取GRUB配置文 件/boot/grub2/grub.cfg,来获取内核和镜像文件系统 的设置和路径位置
Linux 内核是一个预先编译好的特殊二进制文件,介于 各种硬件资源与系统程序之间, 负责资源分配与调度。 内核接过系统控制权以后,将完全掌控整个 Linux 操作 系统的运行过 程。在 CentOS 系统中,默认的内核文件 位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中 可以使用
为了完成进一步的系统引导过程,Linux内核首先将系统 中的“/sbin/init”程序加载到内 存中运行(运行中的程序 称为进程),init 进程负责完成一系列的系统初始化过 程,最后等待用户进行登录
总结:加载硬件驱动程序,内核把init进程加载到内存中 运行
2.systemd服务
传统init依赖于串行执行Shell 脚本启动服务,导致效率 低下,系统启动速度较慢 排队 systemd能够将更多的服务进程并行启动,并且具有提 供按需启动服务的能力,使得启动更少进程,从而提高 系统启动速度
在centos7中 淘汰了init(原因就是init通过脚本启动,逐个程序启动,效率慢)
采用了新的Systemd (并行启动程序,大大增加了启动效率)
pstree 查看系统中的所有进程
systemd 核心概念:unit unit表示不同类型的systemd对象,通过配置文件进行 标识和配置;文件中主要包含了系统服务、监听 socket、保存的系统快照以及其它与init相关的信息
单元类型 | 扩展名 | 说明 |
service | .service | 描述一个系统服务 |
socket | .socket | 一个进程间的套接字 |
device | .device | 内核识别的设备文件 |
mount | .mount | 文件系统的挂载点 |
automount | .automount | 文件系统的解挂载点 |
swap | .swap | 内存交换设备或交换文件 |
path | .path | 文件中的目录 |
timer | .timer | 定时器 |
snapshot | .snapshot | Systemd 运行状态 |
scope | .scope | 描述一些系统服务的分组信息 |
slice | .slice | 在Cgroup的一组通过层次组织的管理系统过程 |
target | .target | 描述一组systemd的单元 |
运行级别 | systemd的target | 解释 |
0 | target | 关机状态,使用此级别会关机 |
1 | rescue.target | 单用户模式 |
2,4 | multi-user.target | 用户自定义运行级别,通常识别为级别3。 |
3 | multi-user.target | 字符界面的完整多用户的模式,大多数服务器主机运行在这个级别 |
5 | graphical.target | 多用户,图形界面。继承级别3的服务,并启动图形界面服务。 |
6 | reboot.target | 重启 |
emergency | emergency.target | 急救模式(Emergency shell) |
- [root@localhost ~]# runlevel //查看切换运行级别与当前运行级别
- N 5
-
- #N:表示前一次没有切换过运行级别
- #5:当前运行级别5,处于图像界面的多用户模式
- [root@localhost ~]# systemctl get-default //查看默认的运行级别
- graphical.target //默认运行级别为图形界面
init(切换临时运行级别的首选方式,方便容易记):
- init 0 //关机
- init 1 //切换到单用户模式(single,维护模式)
- init 3 //切换到字符界面的多用户模式
- init 5 //切换到图形界面的多用户模式
- init 6 //重启
systemctl的命令格式
- command参数:
-
- get-default:取得当前的target
- set-default:设置指定的target为默认的运行级别
- isolate:切换到指定的运行级别
systemctl set-default :
- [root@localhost ~]# systemctl get-default //查看当前默认运行级别,为图形界面
- graphical.target
- [root@localhost ~]# systemctl set-default multi-user.target //将默认运行级别修改为字符界面
- Removed symlink /etc/systemd/system/default.target.
- Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
- [root@localhost ~]# systemctl get-default //查看修改后的默认运行级别,为字符界面
- multi-user.target
-
3.系统服务控制
命令格式:
控制类型:
eg:
status 查看防火墙firewalld的状态。
[root@localhost ~]# systemctl status firewalld //查看firewalld服务的状态
disable 关闭防火墙的开机自启动,改成开机不启动(但并不改变当前状态)。
[root@localhost ~]# systemctl disable firewalld //关闭防火墙的开机自启动,但不改变当前状态
stop 立即关闭防火墙。
[root@localhost ~]# systemctl stop firewalld //立即关闭防火墙
enable --now,将防火墙设置为开机自启动,并立即启动。
[root@localhost ~]# systemctl enable --now firewalld //设置防火墙开机启动,并且现在就启动
4. 优化启动的补充
ntsysv工具
systemctl工具
总结
1.熟悉清除Linux的五个引导阶段,知道Systemd服务的特性。
2.掌握系统服务控制的操作,能够针对服务名称,做到查看状态,关闭,启动