systemd概念和运行机制
Posted linerbaby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了systemd概念和运行机制相关的知识,希望对你有一定的参考价值。
systemd概念
核心概念:单元
依赖关系
systemd事务
启动目标和运行级别
单元
早期CentOS版本中的服务管理脚本在CentOS7中被服务但源文件替换。系统初始化需要启动后台服务,需要完成一系列的配置工作(如挂载文件系统),其中每一步或者每一项任务都要被systemd抽象为一个单元,单元由相应的配置文件进行识别和配置,一个单元需要一个对应的单元文件
依赖关系
虽然说systemd能够最大限度的并发执行很多有关于依赖的工作,但是一些任务存先后的依赖关系,无法并行执行。为解决这一依赖问题。systemd的单元之间可以彼此定义依赖关系。可以在单元
文件中使用关键字来描述单元之间的依赖关系。如单元A依赖单元B,可以在单元B的定义中用require A来表示,这样systemd就会保证先启动A再启动B。
systemd事务
systemd能够保证事务完整性,此事务于数据库中有所不同,旨在保证多个依赖的单元之间没有循环引用。例如单元A,B,C之间存在依赖,systemd将无法启动任意一个服务,为此systemd将单元之间的依赖分为两种:即强依赖和弱依赖。systemd能够自动修复配置错误,极大的减轻了管理员的排错负担。
启动目标和运行级别
systemd可以创建不同的装填,装填提供了灵活的机制来设置启动配置项。这些状态是由多个但源文件组成的,systemd将这些状态称之为启动目标。
运行级别就是操作系统当前长在运行的功能级别。Linux的标准运行级别为0~6。Centos7使用systemd代替init程序来开始系统初始化的过程,使用启动目标的概念来代替运行级别。
运行级别之间是相互排斥的,不可能多个级别同时启动,但是多个启动目标可以同时启动,启动目标提供了最大的灵活性,可以继承一个已有的目标,并添加其他服务来创建自己的目标
systemd启动系统时需要启动大量的单元。每一次启动都是指本次启动需要哪些单元。启动某个目标时,systemd就会启动其中所有的单元。从这个角度上来看,启动目标这个概念类似于一种状态,启动某个目标就好比启动到某种状态
CentOS预定义了一些启动目标,与之前的版本有所不同,为了向后兼容,systemd也让一些启动目标映射为SysV的运行级别
systemd单元文件
以上是关于systemd概念和运行机制的主要内容,如果未能解决你的问题,请参考以下文章