三十、CentOS 7之systemd
一、系统启动流程
POST --> bootloader --> MBR工作 --> kernel(initramfs/initrd) --> ro rootfs --> init
二、init
用户空间的一切与管理相关的事务由Init程序完成,特权操作发起syscall由内核完成
2.1、init分类
1)、CentOS 5 :SysV /sbin/init
大量进程切换
进程的依赖关系
2)、CentOS 6:Upstart 命令名:init
dbus机制,进程间通信,取消依赖
3)、CentOS 7 :Systemd
2.2、Systemd新特性:
* 系统引导时,并行启动进程,类似于upstart
* 按需激活进程: 节约内存,启动速度快
* 支持系统快照
* 基于依赖控制服务启动逻辑
三、系统管理的核心概念: systemd unit
3.1、配置文件进行标识和配置:文件中主要包含了系统服务、监听socket、保存的系统快照snapshot、服务程序、以及其它与init相关的信息
配置文件
/usr/lib/systemd/system(重要文件)
/run/system/system
/etc/systemd/system (重要文件)
注:不需要执行权限,仅为配置文件而已
3.2、Uint的类型:
Service unit :文件扩展名为.service , 用于定义系统服务(管理服务)
/etc/systemd/system/httpd.service
/usr/lib/systemd/system
每一个脚本控制一个服务,每个脚本对应一个service 的unit
Target unit :文件扩展名为.target ,用于模拟实现“运行级别”

3.2、Unit关键特性(按需激活)
基于socket的激活机制:系统启动用不到的服务,由socketunit代为监听,在被访问时临时启动服务。
基于bus的激活机制:支持dbus进程间通信的程序,可以按需激活
基于device激活机制:在某个硬件设备激活或变得可用时的激活机制
基于path激活机制:某个文件路径变得可用或激活时,激活相关服务
基于快照激活机制:保存各unit的当前状态信息于持久存储设备中,必要时能够自动载入
向后兼容SysV init脚本:兼容有限,支持有限个运行级别
3.3、不兼容
* 没有脚本灵活,systemctl命令格式固定
* 非由systemd服务启动的服务,systemd无法与之通信即systemd服务不能控制
* systemd级别切换时,只有将运行中的服务才会停止,停止中的服务才会启动。
SysV脚本init切换运行级别时,例如3-->
将/etc/rc.d/rc./*下的所有服务程序
K* stop
S* start
* systemctl不会读取标准输入数据流
* 跟用户的PATH环境没有关系(即使用绝对路径)
* unit均受5min超时时长,时间一过,将会退出
四、CentOS 7 systemd管理系统服务
4.1、基本管理
条件式重启:服务启动才重启,没启动就不作任何操作


4.2、服务状态注解


4.3、查看服务启动或停止、依赖关系、查看运行级别
systemctl list-units --type TYPE [--all] 查看所有服务的状态
systemctl list-units --type service --all
查看所有运行(激活)状态的服务
systemctl list-units --type service 查看单个服务是否处于运行状态
systemctl is-active name.service 显示服务的依赖关系
systemctl list-dependencies name.service
a)、服务状态注解

b)、查看开机是否自动启动
查看所有服务开机是否自动启动
systemctl list-unit-files --type service 查看单个服务开机是否开机自动启动 (记住)
systemctl is-enabled name.service
c)、设定服务开机是否自启

d)、运行级别管理
name.target :
.target后缀配置文件:模拟某一级别所需要依赖的服务定义在一起能够同时启动
注:对centos7来说:2、3、4级别都一样

e)、级别管理
级别切换
centos 6 centos 7
init N ===》 systemctl isolate name.target
查看运行级别
systemctl list-units --type target
systemctl list-units --type target -all
获取默认运行级别:
/etc/inittab ==》 systemctl get-default
修改默认级别:
/etc/inittab ==》 systemctl set-default name.target
注:设定默认运行级别靠的是/etc/systemd/system/default.target
设定图形:
删除/etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
设定字符:
删除/etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
f)、切换至紧急救援模式:
systemctl rescue | emergency
resuce :服务没有启动,驱动加载(renlevel1.target/rescue.target)==》init 1
emergency:服务没有启动,驱动没有加载,没有初始化==》 启动过程中向内核传递emergency参数即可
g)、其它常用命令
关机 : systemctl halt | poweroff
重启: systemctl reboot
挂起:systemctl suspend (存储系统状态与内存中,关机数据会丢失)
保存快照:systemctl hibernate (系统重启后,不用操作自动操作)
快照并挂起: systemctl hybrid-sleep
重置错误状态的unit:
systemctl reset-failed name.service
kill指明的unit
systemctl kill name.TYPE
查看服务是否处于错误状态
systemctl is-failed name.service
显示服务的属性信息
systemctl show name.service
h)、unit配置文件
[Unit]
Description=描述信息
After=定义依赖关系
[Service]
程序
执行的命令
启动
重载
停止
三十、CentOS 7之systemd的更多相关文章
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
centos shell编程4[分发系统] 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- CentOS 7 中 Systemd详解
一.systemd的由来 Linux一直以来采用init进程但是init有两个缺点: 1.启动时间长.Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程.(这也是CentOS5的主要特征 ...
- CentOS 7.4 初次手记:第三章 CentOS基础了解
第三章 CentOS基础了解... 36 第一节 语言编码.终端... 36 I 查看语言编码... 36 II Tty?.pts/?. 36 第二节 bash/sh command. 38 I 查找 ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
随机推荐
- poj 3253 哈夫曼贪心
http://poj.org/problem?id=3253 题意: FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods).开始时,FJ只有一块无限长的木板 ...
- 如何对SAP Leonardo上的机器学习模型进行重新训练
Jerry之前的两篇文章介绍了如何通过Restful API的方式,消费SAP Leonardo上预先训练好的机器学习模型: 如何在Web应用里消费SAP Leonardo的机器学习API 部署在SA ...
- 2.TCP/IP的三次握手与四次挥手
参考文章:http://357742954.blog.51cto.com/368705/1317226 TCP(Transmission Control Protocol) 传输控制协议,是一个面向连 ...
- UMI.js开发知识总结
五分钟掌握最小知识体系 本文阅读时间大概为5分钟,但是能让你了解基于UMI和DVA构建项目的最小知识体系,你可以粗略的浏览一下本文所提到的知识,在后续的讲解中都会多次重复提起,保证学习效率.由于现在前 ...
- linux centos Supervisor守护.netcore进程安装配置
场景:当部署完.netcore程序后 使用dotnet xx.dll 后可以运行,但关闭shell或隔断时间会自动断开,此时部署的.netcore程序就不能访问了,此时需要用到Supervisor了 ...
- Link monitoring
参考:https://www.ibm.com/support/knowledgecenter/en/linuxonibm/com.ibm.linux.z.l0wlcb00/l0wlcb00_miimo ...
- centos7下postgresql数据库安装及配置
1.安装 #yum install -y postgresql-server 2.postgresql数据库初始化 #service postgresql initdb 3.启动postgresql服 ...
- Tomcat 项目结构完整解析
本文主要为了对我们平时Tomcat中,我们经常会涉及到的项目结构做一个解析,以便可以一目了然的知道有哪些结构及其作用. 最近一直在思考,怎么样才能一目了然,初步考虑,即用浏览器打开页面,不用往下滑动, ...
- Windows10官方正版系统的安装、激活、升级、U盘制作,无毒无害无捆绑无风险教程
一般电脑系统出了其他问题或电脑用久太卡了,可以选择此类方法解决系统卡顿问题,重置电脑系统或也可以恢复出厂设置 如果出现重置找不到恢复环境问题 可以通过下载系统镜像来解决,进入 MSDN 网站下载所需系 ...
- 2.webpack最基本的使用方式
什么是webpack? webpack是前端的一个项目构建工具,它是基于Node.js开发出来的一个前端工具: webpack安装的两种方式 1.运行 'npm i webpack -g' 全局安装w ...