简述systemd的新特性及unit常见类型分析

一、systemd的由来与特性

CentOS7使用了systemd来管理系统,取代了CentOS 5的sysV init和CentOS 6的Upstart。systemd出现的主要目的为减少系统引导时间和计算开销。systemd兼容之前CentOS版本的init开机启动脚本。下图为systemd框架图:


systemd框架图.jpg
systemd的特性
  • 基于socket的激活机制:
    systemd为支持此机制的服务监听socket,当有客户端与socket通信时,由systemd激活服务,应答客户端的请求;这种机制类似于守护进程。

  • 基于bus的激活机制:
    基于总线的激活

  • 基于device的激活机制:
    当有设备接入时,systemd会自动激活device、mount、automount等unit来识别,挂载接入的设备

  • 基于Path的激活机制:
    当某个文件路径变得可用时或路径出现相应文件时,激活对应服务

  • 向后兼容:
    兼容CentOS 5的sysV init以及CentOS 6的upstart机制,也就是说可以继续将服务管理脚本放入/etc/rc.d/init.d目录中管理

  • 系统引导时实现服务并行启动:
    使用并行的方法启动服务,不像SysV init是顺序执行的,所以大大节省了系统启动时间

  • 按需激活进程:
    只有需要此进程运行时,才激活进程

  • 支持快照和系统恢复:
    保存各unit的当前状态信息到持久存储中,在下次开机时可恢复之前某次快照时的系统状态,必要时可自动载入

  • 基于依赖关系定义服务控制逻辑:

二、system的unit

  1. 何为unit:
    unit由其相关配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息;

  2. unit在系统中的路径:
    软件包安装的系统单元:/usr/lib/systemd/system
    运行时配置的系统单元:/run/systemd/system
    本地配置的系统单元:/etc/systemd/system

  3. 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, 用于定义文件系统中的一文件或目录;

  4. systemd与sysV init 以及upstart不兼容之处:

  • /etc/rc.d/init.d目录中的服务管理脚本不可以用systemctl命令来管理,systemctl命令的参数已经固定
  • /etc/rc.d/init.d目录中的服务管理脚本启动的服务,与systemd管理启动的进程之间无法通信
  • systemd虽然模拟出run level,但是与init、upstart机制的运行级别不完全一致
  1. service unit
  • 系统服务新老机制对应:
    启动:service name start ==> systemctl start name.service
    停止:service name stop ==> systemctl stop name.service
    重启:service name restart ==> systemctl restart name.service
    状态:service name startus ==> systemctl startus name.service
    条件式重启:service name condrestart ==> systemctl try-restart name.service
    重载或重启服务:systemctl reload-or-restart name.service
    重载或条件式重启服务:systemctl reload-or-try-restart name.service
    禁止设定为开机自启:systemctl mask name.service
    取消禁止设定为开机自启:systemctl unmask name.service
    查看某服务当前激活与否的状态:systemctl is-active name.service
    查看所有已经激活的服务:systemctl list-units --type service
    查看所有服务:systemctl list-units --type service --all

  • chkconfig命令的对应关系:
    设定某服务开机自启:chkconfig name on ==> systemctl enable name.service
    禁止:chkconfig name off ==> systemctl disable name.service
    查看所有服务的开机自启状态:chkconfig --list ==> systemctl list-unit-file --type service
    查看服务是否开机自启:systemctl is-enable name.service
    查看服务的依赖关系:systemctl list-dependencies name.service

  1. target units
  • 运行级别:
    0 ==> runlevel0.target,poweoff.target
    1 ==> runlevel1.target, rescue.target
    2 ==> runlevel2.target,multi-user.target
    3 ==> runlevel3.target,multi-user.target
    4 ==> runlevel4.target,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
  • 获取默认运行级别:/etc/initab ==> systemctl get-default
  • 修改默认级别:/etc/initab ==> systemctl set-default name.target
  • 切换至紧急救援模式:systemctl rescue
  • 切换至emergency模式:systemctl emergency
  1. 其他常用命令
    关机: systemctl halt, systemctl poweroff
    重启: systemctl reboot
    挂起: systemctl suspend
    快照: systemctl hibernate
    快照并挂起: systemctl hybrid-sleep
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342