1. 系统启动流程:POST --> Boot Sequeue(BIOS) --> Bootloader(MBR) --> Kernel(ramdisk) --> rootfs --> /sbin/init
        init:
            CentOS 5: SysV init
            CentOS 6:Upstart
            CentOS 7:Systemd
             
2. Systemd的新特性:
  系统引导时实现服务并行启动;
  按需激活进程;
  系统状态快照;
  基于依赖关系定义服务控制逻辑;
             
3. 核心概念:unit
  unit由其相关配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息; 这些配置文件主要保存在:
    /usr/lib/systemd/system
    /run/systemd/system
    /etc/systemd/system
             
4. unit的常见类型:
  Service unit:文件扩展名为.service,用于定义系统服务;
  Target unit:文件扩展为.target,用于模拟实现“运行级别”;
  Device unit: .device,用于定义内核识别的设备;
  Mount unit: .mount,定义文件系统挂载点;
  Socket unit: .socket,用于标识进程间通信用到的socket文件;
  Snapshot unit: .snapshot, 管理系统快照;
  Swap unit: .swap, 用于标识swap设备;
  Automount unit: .automount,文件系统自动点设备;
  Path unit: .path, 用于定义文件系统中的一文件或目录;
 
5.关键特性:
  基于socket的激活机制:socket与程序分离;
  基于bus的激活机制;
  基于device的激活机制;
  基于Path的激活机制;
  系统快照:保存各unit的当前状态信息于持久存储设备中;
  向后兼容sysv init脚本;
  /etc/init.d/
                 
  不兼容:
    systemctl的命令是固定不变的;
    非由systemd启动的服务,systemctl无法与之通信;
             
6. 管理系统服务:
  CentOS 7: service类型的unit文件;
             
7. syscemctl命令:
                    - Control the systemd system and service manager
                     
                    systemctl  [OPTIONS...]  COMMAND  [NAME...]
                     
                        启动: service  NAME  start  ==>  systemctl  start  NAME.service
                        停止: service  NAME  stop  ==> systemctl  stop  NAME.service
                        重启: service  NAME  restart  ==>  systemctl  restart  NAME.service
                        状态: service  NAME  status  ==>  systemctl  status  NAME.service
                        条件式重启:service  NAME  condrestart  ==>  systemctl  try-restart  NAME.service
                        重载或重启服务: systemctl  reload-or-restart  NAME.servcie
                        重载或条件式重启服务:systemctl  reload-or-try-restart  NAME.service
                         
                        查看某服务当前激活与否的状态: systemctl  is-active  NAME.service
                        查看所有已激活的服务:systemctl  list-units  --type  service
                        查看所有服务(已激活及未激活): chkconfig --lsit  ==>  systemctl  list-units  -t  service  --all
                         
                        设置服务开机自启: chkconfig  NAME  on  ==>  systemctl  enable  NAME.service
                        禁止服务开机自启: chkconfig  NAME  off  ==>  systemctl  disable  NAME.service
                        查看某服务是否能开机自启: chkconfig  --list  NAME  ==>  systemctl  is-enabled  NAME.service
                         
                        禁止某服务设定为开机自启: systemctl  mask  NAME.service
                        取消此禁止: systemctl  unmask  NAME.servcie
                         
                        查看服务的依赖关系:systemctl  list-dependencies  NAME.service
                         
8. 管理target units:
             
            运行级别:
                0  ==>  runlevel0.target,  poweroff.target
                1  ==>  runlevel1.target,  rescue.target
                2  ==>  runlevel2.tartet,  multi-user.target
                3  ==>  runlevel3.tartet,  multi-user.target
                4  ==>  runlevel4.tartet,  multi-user.target
                5  ==>  runlevel5.target,  graphical.target
                6  ==>  runlevel6.target,  reboot.target
                 
            级别切换: init  N  ==>  systemctl  isolate  NAME.target
             
            查看级别: runlevel  ==>  systemctl  list-units  --type  target
            查看所有级别: systemctl  list-units  -t  target  -a
             
            获取默认运行级别:systemctl  get-default 
            修改默认运行级别: systemctl  set-default   NAME.target
             
            切换至紧急救援模式: systemctl  rescue
            切换至emergency模式: systemctl  emergency
             
9. 其它常用命令:
            关机: systemctl  halt,  systemctl  poweroff
            重启: systemctl  reboot
            挂起: systemctl  suspend
            快照: systemctl  hibernate
            快照并挂起: systemctl  hybrid-sleep
             
10. service unit file:
            文件通常由三部分组成:
                [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等;
                [Service]:与特定类型相关的专用选项;此处为Service类型;
                [Install]:定义由“systemctl  enable”以及"systemctl  disable“命令在实现服务启用或禁用时用到的一些选项;
                 
            Unit段的常用选项:
                Description:描述信息; 意义性描述;
                After:定义unit的启动次序;表示当前unit应该晚于哪些unit启动;其功能与Before相反;
                Requies:依赖到的其它units;强依赖,被依赖的units无法激活时,当前unit即无法激活;
                Wants:依赖到的其它units;弱依赖;
                Conflicts:定义units间的冲突关系;
                 
            Service段的常用选项:
                Type:用于定义影响ExecStart及相关参数的功能的unit进程启动类型;
                    类型:
                        simple:
                        forking:
                        oneshot:
                        dbus:
                        notify:
                        idle:
                EnvironmentFile:环境配置文件;
                ExecStart:指明启动unit要运行命令或脚本; ExecStartPre, ExecStartPost
                ExecStop:指明停止unit要运行的命令或脚本;
                Restart:
                 
            Install段的常用选项:
                Alias:
                RequiredBy:被哪些units所依赖;
                WantedBy:被哪些units所依赖;
                 
        注意:对于新创建的unit文件或,修改了的unit文件,要通知systemd重载此配置文件;
            # systemctl  daemon-reload
             
        练习:为当前系统的httpd服务提供一个unit文件;

【Linux】【Commands】systemd的更多相关文章

  1. 【Linux探索之旅】第二部分第二课:命令行,世界尽在掌握

    内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主 ...

  2. 【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见

    内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是 ...

  3. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

    两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux  ps1 menu choice Multiselect 传教士 菜单 powe ...

  4. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 .第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的吗 ...

  5. 【LINUX/UNIX网络编程】之简单多线程服务器(多人群聊系统)

    RT,Linux下使用c实现的多线程服务器.这个真是简单的不能再简单的了,有写的不好的地方,还希望大神轻拍.(>﹏<) 本学期Linux.unix网络编程的第四个作业. 先上实验要求: [ ...

  6. 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)

    RT,使用消息队列,信号量和命名管道实现的多人群聊系统. 本学期Linux.unix网络编程的第三个作业. 先上实验要求: 实验三  多进程服务器 [实验目的] 1.熟练掌握进程的创建与终止方法: 2 ...

  7. 【Linux/unix网络编程】之使用socket进行TCP编程

    实验一 TCP数据发送与接收 [实验目的] 1.熟练掌握套接字函数的使用方法. 2.应用套接字函数完成基本TCP通讯,实现服务器与客户端的信息交互. [实验学时] 4学时 [实验内容] 实现一个服务器 ...

  8. 【Linux探索之旅】第一部分第二课:下载Linux,免费的噢

    内容简介 1.第一部分第二课:下载Linux,免费的噢 2.第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课我们认识了非常“霸气侧漏”的Linux操作系统. 也知道 ...

  9. 【Linux探索之旅】第一部分第三课:测试并安装Ubuntu

    内容简介 1.第一部分第三课:测试并安装Ubuntu 2.第一部分第四课预告:磁盘分区 测试并安装Ubuntu 大家好,经过前两个比较偏理论(是否想起了带着瓜皮帽,手拿折扇的老学究,或者腐儒)的课程, ...

  10. 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?

    内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢!   开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...

随机推荐

  1. Linux usb 2. 协议分析

    文章目录 0. 背景 1. USB 协议传输格式 1.1 Packet 1.1.1 Token Packet 1.1.2 Data Packet 1.1.3 Handshake Packet 1.1. ...

  2. Apache Kyuubi 在 T3 出行的深度实践

    支撑了80%的离线作业,日作业量在1W+ 大多数场景比 Hive 性能提升了3-6倍 多租户.并发的场景更加高效稳定 T3出行是一家基于车联网驱动的智慧出行平台,拥有海量且丰富的数据源.因为车联网数据 ...

  3. C++基本程序设计——面向对象程序设计课堂笔记

    主要对老师上课的ppt的笔记整理 C++基本程序设计 1.c++的输入输出 使用cin,cout和流运算符,开头须有 #include<iostream> (1)cin语句:cin> ...

  4. python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇

    0 - 占位符介绍 要实现字符串的拼接,使用占位符是的一种高效.常用的方式. 举个例子,下面是不使用占位符的一种写法,直接使用加号拼接字符串 name = "Li hua" age ...

  5. [bzoj1863]皇帝的烦恼

    二分枚举答案,假设是ans,考虑判定答案从前往后计算,算出每一个将军与第一个将军最少和最多有多少个相同的奖牌,贪心转移即可 1 #include<bits/stdc++.h> 2 usin ...

  6. python中使用正则表达式处理文本(仅记录常用方法和参数)

    标准库模块 python中通过re模块使用正则表达式 import re 常用方法 生成正则表达式对象 compile(pattern[,flags]) pattern:正则表达式字符串 flags: ...

  7. java实现自动化发布平台核心代码

    1.搭建jenkins环境 (1)jenkins官网下载jenkins.war包 (2)将该war包放入到tomcat的webapp的目录下(前提条件需要配置tomcat的环境,详情请自行百度) (3 ...

  8. 从零开始学Kotlin第六课

    Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. ...

  9. Hbuilder/Uniapp 格式化的时候,很多属性会排列在一行,如何结局?

    因为自己遇到这个问题,然后百度了很久都得不到解决办法,所以解决问题以后在博客园写下此文,希望能帮助到更多人! //在jsbeautifyrc.js里面的html中加入这个,就OK了 "wra ...

  10. 《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)

    1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. ...