y   小y笔记


==============  我的Linux学习笔记  ==============
主页     Linux常用命令     Linux系统管理     Linux网络管理     shell script    


systemd


Systemd:

Post --> Boot Sequence --> Bootloader --> kernel + initramfs(initrd) --> rootfs --> /sbin/init
init:
CentOS 5: SysV init
CentOS 6: Upstart
CentOS 7: Systemd

Systemd新特性:
系统引导时实现服务并行启动;
按需激活进程;
系统状态快照;
基于依赖关系定义服务控制逻辑;

核心概念:unit
配置文件进行标识和配置:文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息;
保存至:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system

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

关键特性:
基于socket的激活机制: socket与服务程序分离;
基于bus的激活机制:
基于device的激活机制:
基于path的激活机制:
系统快照:保存各unit的当前状态信息于持久存储设备中;
向后兼容sysv init脚本:

不兼容:
systemctl命令固定不变
非由systemd启动的服务,systemctl无法与之通信

管理系统服务:
CentOS 7: service unit
注意: 能兼容早期的服务脚本

命令: systemctl COMMAND name.service
启动: service name start ==> systemctl start name.service(.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

chkconfig命令的对应关系:
设定某服务开机自启: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


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

修改默认级别:
systemctl set-default name
/etc/systemd/system/default.target 链接至 /usr/lib/systemd/system/*
切换至紧急救援模式:
systemctl rescue
切换至emergency模式:
systemctl emergency

其它常用命令:
关机:systemctl halt、systemctl poweroff
重启:systemctl reboot
挂起:systemctl suspend
快照:systemctl hibernate
快照并挂起:systemctl hybrid-sleep


copyright©lssyg