1. 类型

systemd开启和监督整个系统是基于unit的概念。unit是由一个与配置文件名同名的名字和类型组成的(例如:avahi.service unit有一个具有相同名字的配置文件,它是守护进程avahi的一个封装单元)。unit有以下几种类型:

  • service:代表一个后台服务进程,比如 mysqld。这是最常用的一类。

  • socket:此类配置单元封装系统和互联网中的一个套接字。当下,systemd支持流式,数据报和连续包的 AF_INET,AF_INET6,AF_UNIX socket。每个套接字配置单元都有一个相应的服务配置单元,相应的服务在第一个“连接”进入套接字时就会启动(例如:nscd.socket在有新连接后便启动nscd.service)。

  • device:此类配置单元封装一个存在于Linux设备树中的设备。每个使用udev规则标记的设备都将会在systemd中作为一个设备配置单元出现。

  • mount:此类配置单元封装文件系统结构层次中的一个挂载点。systemd将对这个挂载点进行监控和管理。比如,可以在启动时自动将其挂载,可以在某些条件下自动卸载。systemd会将/etc/fstab中的条目都转换为挂载点,并在开机时处理。

  • automount:此类配置单元封装系统结构层次中的一个自挂载点。每个自挂载配置单元对应一个挂载配置单元,当该自动挂载点被访问时,systemd执行挂载点中定义的挂载行为。

  • Swap:和挂载配置单元类似,交换配置单元用来管理交换分区。用户可以用交换配置单元来定义系统中的交换分区,可以让这些交换分区在启动时被激活。

  • target:此类配置单元为其他配置单元进行逻辑分组。它们本身实际上并不做什么,只是引用其他配置单元而已,这样便可以对配置单元做一个统一的控制,就可以实现大家都非常熟悉的运行级别的概念。比如,想让系统进入图形化模式,需要运行许多服务和配置命令,这些操作都由一个个的配置单元表示,将所有的这些配置单元组合为一个目标(target),就表示需要将这些配置单元全部执行一遍,以便进入目标所代表的系统运行状态(例如:multi-user.target相当于在传统使用sysv的系统中运行级别5)。

  • timer:定时器配置单元用来定时触发用户定义的操作。这类配置单元取代了atd,crond等传统的定时服务。

  • snapshot:与target配置单元相似,快照是一组配置单元,它保存了系统当前的运行状态。

每个配置单元都有一个对应的配置文件,比如一个MySQL服务对应一个mysql.service文件。这种配置文件的语法非常简单,用户不需要再编写和维护复杂的sysv脚本了。

2. 依赖关系

虽然systemd将大量的启动工作解除了依赖,使得它们可以并行启动。但还是存在一些任务,它们之间存在天生的依赖关系,不能用“套接字激活”(socket activation),D-Bus activation和autofs三大方法来解除依赖。比如,挂载必须等待挂载点在文件系统中被创建; 挂载也必须等待相应的物理设备就绪。为了解决这类依赖问题,systemd的配置单元之间可以彼此定义依赖关系。比如,unit A依赖unit B,可以在unit B的定义中用“require A”来表示,这样systemd就会保证先启动A再启动B。systemd能保证事务完整性。systemd的事务概念和数据库中的有所不同,主要是为了保证多个依赖的配置单元之间没有环形引用。如果存在循环依赖,那么systemd将无法启动任意一个服务。此时,systemd将会尝试解决这个问题,因为配置单元之间的依赖关系有两种:requireds是强依赖,wants则是弱依赖,systemd将去掉wants关键字指定的依赖看看是否能打破循环。如果无法修复,systemd会报错。systemd能够自动检测和修复这类配置错误,极大地减轻了管理员的拔锚负担。

3. target和运行级别

systemd用目标(target)替代了运行级别的概念,提供了更大的灵活性,比如可以继承一个已有的目标,并添加其他服务来创建自己的目标。下表展示sysvinit运行级别和systemd目标的对应关系:

sysvinit运行级别    

systemd目标                    

备注

0
runlevel0.target,poweroff.target
关闭系统

1,s,single
runlevel1.target,rescue.target
单用户模式

2,4
runlevel2.target,runlevel4.target,multi-user.target
用户定义/域特定运行级别。默认等同于3

3
runlevel3.target,multi-user.target
多用户,非图形化。用户可以通过多个控制台或网络登录

5
runlevel5.target,graphical.target
多用户,图形化。通常为所有运行级别3的服务外加图形化登录

6
runlevel6.target,rebooot.target 
重启

emergency     
emergency.target
急救模式(Emergency shell)

转载于:https://blog.51cto.com/wjb10000/1788365

Linux服务管理之unit的概念相关推荐

  1. linux 管理 服务,Linux服务管理 详述

    一 服务的分类与简介 1 服务的分类 Linux服务包含RPM包默认的安装服务和源码包安装的服务,RPM包默认安装的服务又分为独立的服务和基于xinetd服务,独立的服务相当于直接在内存中,只要用到这 ...

  2. Linux(b站视频兄弟连)自学笔记第十二章——Linux服务管理

    Linux(b站视频兄弟连)自学笔记第十二章--Linux服务管理 服务分类 RPM包安装服务的管理 独立服务的管理 基于xinetd 的服务管理 源码包服务管理 服务分类 RPM包安装服务的管理 独 ...

  3. linux 服务管理两种方式service和systemctl

    1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 service redis start # 直接启动redis ...

  4. Linux学习笔记(3)linux服务管理与启停

    一.LINUX 系统服务管理 1.RHEL/OEL 6.X及之前 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等 ...

  5. 第12章:Linux服务管理

    1.服务的分类 在Windows中,安装的程序,有的是应用程序软件,有的是相应的服务.Linux同样是这样.因此,Linux服务的分类为下面两种:RPM包默认安装的服务(独立的服务.基于xinetd服 ...

  6. linux如何关掉正在启动的服务器,Linux服务管理(如何关闭或禁用不需要的服务)?...

    在安装Linux操作系统时,一些不必要的数据包和应用程序会在用户不注意的情况下自动安装.在本文中,我们将讨论如何将Linux系统中一些不必要的应用程序和服务禁用,以保护你的系统资源. 首先让我们来看看 ...

  7. Linux服务管理---系统运行级别、rpm启动与自启动、源码包的启动...

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/twilight_karl/article/details/76714066 系统运行级别 runlevel ...

  8. Linux 权限管理: 权限的概念、权限管理、文件访问权限的设置、 粘滞位

    Linux下的基本指令 目录: 权限的概念 权限管理 文件访问权限的设置方法 目录的权限 粘滞位 权限的概念 Linux下用户有两种: 超级用户(root).普通用户. 超级用户:具有最高权限,可以在 ...

  9. linux系统内存管理含义,Linux内存管理--基本概念及相关数据结构

    一.内存管理的基本概念 1.存储空间 在32位嵌入式系统中,存储空间的地址范围从0x00000000到0xFFFFFFFF.这4GB存储范围内可以包括以下几种存储空间: 设备空间(MT_DEVICE) ...

  10. linux服务管理命令systemctl

    1.查看系统服务的状态 ##列出当前系统服务的状态 systemctl list-units systemctl list-units|grep httpd systemctl list-units ...

最新文章

  1. mysql ios 工具_IOS工具(三)安装mysql
  2. SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlite-insert.html)
  3. Android中BroadcastReceiver
  4. 八皇后问题python_python八皇后问题的解决方法
  5. MySQL常见的存储引擎的区别?
  6. 位居中国机器学习公有云市场份额第一,华为云 ModelArts 的进阶之路
  7. Eclipse — 更改包名后导致服务器启动报异常
  8. RpcOrtho failed: An unknown process erroroccurred.
  9. 实对称矩阵的特征向量矩阵为酉矩阵
  10. 圆柱螺旋压缩弹簧计算实例
  11. Word文件没有保存怎么找回来?恢复文件
  12. bmp图片格式转化为jpg
  13. Test: Windows Live Writer for Cnblogs
  14. 纯javascript模拟操作系统---jsOS
  15. 【MacBook】激活有个步骤要输面的问题:Enter the passcode you use to unlock the MacBook ***.
  16. 零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s
  17. html高德api,高德地图 Javascript API 入门(一)
  18. 第八届“图灵杯”NEUQ—ACM程序设计竞赛个人赛(同步赛)
  19. 企业网络流量分析监控软件
  20. vscode使用问题合集

热门文章

  1. 怎么将PDF文件分成若干个小文件呢
  2. 女生自学计算机方向建议
  3. CF#446 Gluttony(思维题)
  4. 朴素贝叶斯解决凉鞋问题
  5. 给女朋友讲解什么是代理模式
  6. 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
  7. 怎么做网站推广-网站推广100种方法
  8. candence测量尺寸
  9. GoTop给网站加一个悬挂猫效果上吊猫
  10. 两个int类型数据交换的神级操作