Systemd
目录
POST --> Boot Sequence --> Bootloader --> kernel + initramfs(initrd) --> rootfs --> /sbin/init
init:
CentOS 5:SysV init
CentOS 6:Upstart
CentOS 7:Systemd
一、Systemd介绍
1.Systemd新特性
系统引导时实现服务并行启动
按需**进程
系统状态快照
基于依赖关系定义服务控制逻辑
2.核心概念:unit
配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息
保存至:
/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.关键特性
基于socket的**机制:socket与服务程序分离
基于bus的**机制
基于device的**机制
基于path的**机制
系统快照:保存各unit的当前状态信息于持久存储设备中
向后兼容sysv init脚本
不兼容:
systemctl命令固定不变,不像脚本那么灵活可拓展参数
非由systemd启动的服务,systemctl无法与之通信
二、管理系统服务
CentOS 7:服务管理通过service unit实现
注意:能兼容早期的服务脚本
1.service命令与systemctl的对应关系
命令:systemctl COMMAND name.service
启动: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.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
2.chkconfig命令与systemctl的对应关系
①设定某服务开机自启
chkconfig name on ==> systemctl enable name.service
②禁止某服务开机自启
chkconfig name off ==> systemctl disable name.service
③查看所有服务的开机自启状态
chkconfig --list ==> systemctl list-unit-files --type service
④查看服务是否开机自启
systemctl is-enabled name.service
⑤查看服务的依赖关系
systemctl list-dependencies name.service
3.target units
unit配置文件:.target
①运行级别:
0 ==> runlevel0.target, poweroff.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/inittab ==> systemctl get-default
⑥修改默认级别:
/etc/inittab ==> systemctl set-default name.target
⑦切换至紧急救援模式:
systemctl rescue
⑧切换至emergency模式:
systemctl emergency
4.其它常用命令
关机:systemctl halt、systemctl poweroff
重启:systemctl reboot
挂起:systemctl suspend
快照:systemctl hibernate
快照并挂起:systemctl hybrid-sleep
回顾
systemd
系统及服务
unit:
类型:service, target
.service, .target
systemctl
参考资料:
马哥随堂笔记
注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。