Linux Systemd 详细介绍: Unit、Unit File、Systemctl、Target

Systemd
简介
CentOS 7 使用 Systemd 替换了SysV

Ubuntu 从 15.04 开始使用 Systemd

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置

特点
优点:

按需启动进程,减少系统资源消耗

并行启动进程,提高系统启动速度

在 SysV-init 时代,将每个服务项目编号,依次执行启动脚本。Ubuntu 的 Upstart 解决了没有直接依赖的启动之间的并行启动。而 Systemd 通过 Socket 缓存、DBus 缓存和建立临时挂载点等方法进一步解决了启动进程之间的依赖,做到了所有系统服务并发启动。对于用户自定义的服务,Systemd 允许配置其启动依赖项目,从而确保服务按必要的顺序运行。

SystemV Upstart 参考上一篇博文:Linux 初始化系统 SystemV Upstart

使用 CGroup 监视和管理进程的生命周期

CGroup 提供了类似文件系统的接口,当进程创建子进程时,子进程会继承父进程的 CGroup。因此无论服务如何启动新的子进程,所有的这些相关进程都会属于同一个 CGroup

在 Systemd 之前的主流应用管理服务都是使用 进程树 来跟踪应用的继承关系的,而进程的父子关系很容易通过 两次 fork 的方法脱离。

而 Systemd 则提供通过 CGroup 跟踪进程关系,引补了这个缺漏。通过 CGroup 不仅能够实现服务之间访问隔离,限制特定应用程序对系统资源的访问配额,还能更精确地管理服务的生命周期

统一管理服务日志

支持快照和系统恢复

缺点:

过于复杂,与操作系统的其他部分强耦合,违反"keep simple, keep stupid"的Unix 哲学
架构图

Unit(单元|服务)
Systemd 可以管理所有系统资源:

将系统资源划分为12类
将每个系统资源称为一个 Unit。Unit 是 Systemd 管理系统资源的基本单位
使用一个 Unit File 作为 Unit 的单元文件,Systemd 通过单元文件控制 Unit 的启动
例如,MySQL服务被 Systemd 视为一个 Unit,使用一个 mysql.service 作为启动配置文件

Unit File(单元文件|配置文件)
单元文件中包含该单元的描述、属性、启动命令等

类型
Systemd 将系统资源划分为12类,对应12种类型的单元文件

系统资源类型 单元文件扩展名 单元文件描述
Service .service 封装守护进程的启动、停止、重启和重载操作,是最常见的一种 Unit 文件
Target .target 定义 target 信息及依赖关系,一般仅包含 Unit 段
Device .device 对于 /dev 目录下的硬件设备,主要用于定义设备之间的依赖关系
Mount .mount 定义文件系统的挂载点,可以替代过去的 /etc/fstab 配置文件
Automount .automount 用于控制自动挂载文件系统,相当于 SysV-init 的 autofs 服务
Path .path 用于监控指定目录或文件的变化,并触发其它 Unit 运行
Scope .scope 这种 Unit 文件不是用户创建的,而是 Systemd 运行时产生的,描述一些系统服务的分组信息
Slice .slice 用于表示一个 CGroup 的树
Snapshot .snapshot 用于表示一个由 systemctl snapshot 命令创建的 Systemd Units 运行状态快照,可以切回某个快照
Socket .socket 监控来自于系统或网络的数据消息
Swap .swap 定义一个用户做虚拟内存的交换分区
Timer .timer 用于配置在特定时间触发的任务,替代了 Crontab 的功能
对于操作单元文件的命令,如果缺省扩展名,则默认.service扩展名

而操作 target 的命令,例如 isolate,则默认.target扩展名

语法
单元文件的语法来源于 XDG桌面入口配置文件.desktop文件

Unit 文件可以分为三个配置区段:

Unit 段:所有 Unit 文件通用,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系
Install 段:所有 Unit 文件通用,用来定义如何启动,以及是否开机启动
Service 段:服务(Service)类型的 Unit 文件(后缀为 .service)特有的,用于定义服务的具体管理和执行动作
单元文件中的区段名和字段名大小写敏感

每个区段内都是一些等号连接的键值对(键值对的等号两侧不能有空格)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值