systemd概念和运行机制

systemd概念

核心概念:单元

依赖关系

systemd事务

启动目标和运行级别

单元

早期CentOS版本中的服务管理脚本在CentOS7中被服务但源文件替换。系统初始化需要启动后台服务,需要完成一系列的配置工作(如挂载文件系统),其中每一步或者每一项任务都要被systemd抽象为一个单元,单元由相应的配置文件进行识别和配置,一个单元需要一个对应的单元文件

依赖关系

虽然说systemd能够最大限度的并发执行很多有关于依赖的工作,但是一些任务存先后的依赖关系,无法并行执行。为解决这一依赖问题。systemd的单元之间可以彼此定义依赖关系。可以在单元

文件中使用关键字来描述单元之间的依赖关系。如单元A依赖单元B,可以在单元B的定义中用require A来表示,这样systemd就会保证先启动A再启动B。

扫描二维码关注公众号,回复: 7949572 查看本文章

systemd事务

systemd能够保证事务完整性,此事务于数据库中有所不同,旨在保证多个依赖的单元之间没有循环引用。例如单元A,B,C之间存在依赖,systemd将无法启动任意一个服务,为此systemd将单元之间的依赖分为两种:即强依赖和弱依赖。systemd能够自动修复配置错误,极大的减轻了管理员的排错负担。

启动目标和运行级别

systemd可以创建不同的装填,装填提供了灵活的机制来设置启动配置项。这些状态是由多个但源文件组成的,systemd将这些状态称之为启动目标。

运行级别就是操作系统当前长在运行的功能级别。Linux的标准运行级别为0~6。Centos7使用systemd代替init程序来开始系统初始化的过程,使用启动目标的概念来代替运行级别。

运行级别之间是相互排斥的,不可能多个级别同时启动,但是多个启动目标可以同时启动,启动目标提供了最大的灵活性,可以继承一个已有的目标,并添加其他服务来创建自己的目标

systemd启动系统时需要启动大量的单元。每一次启动都是指本次启动需要哪些单元。启动某个目标时,systemd就会启动其中所有的单元。从这个角度上来看,启动目标这个概念类似于一种状态,启动某个目标就好比启动到某种状态

CentOS预定义了一些启动目标,与之前的版本有所不同,为了向后兼容,systemd也让一些启动目标映射为SysV的运行级别

systemd单元文件

猜你喜欢

转载自www.cnblogs.com/linerbaby/p/11917022.html