systemd新特性:
系统引导时实现服务并行启动;
按需激活进程;
系统状态快照;
基于依赖关系定义服务控制逻辑;
核心概念: unit systemd的单元
配置文件进行标识和配置: 文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息;
保存至:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system
unit的类型:
service unit : 文件扩展名为.service ,用于定义系统服务;
target unit : 文件扩展名为.target,用于模拟实现“运行级别”;
device unit: .device ,用于定义内核识别的设备;
monut unit: .mount,用于定义文件系统挂载点;
socket unit : .socket,用于标识进程间通信的socket文件;
snapshot unit: .snapshot, 管理系统快照;
sqap unit: .swap ,用于标识swap设备;
automount unit: .automount,用于定义文件系统自动挂载点;
path unit: .path ,用于定义文件系统中的一个文件或目录;
关键特性:
基于socket的激活机制: socket与服务程序分离;
基于bus的激活机制:
基于device 的激活机制:
基于path的激活机制:
系统快照:保存各nit的当前状态信息于持久存储设备中;
向后兼容sysv init脚本;
不兼容特性:
systemctl命令固定不变;
非由systemd启动的服务,systemctl无法与之通信;
管理系统服务:
centos 7: service unit
注意:能够兼容早期的服务脚本
命令: 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
状态: sercie 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
禁止设定为开机自启: 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
修改默认级别:
/etc/inittab ===> ssytemctl set-default name.target
切换至紧急救援模式
systemctl rescue
切换至emergency模式
systemctl emergency
其它常用命令:
关机:systemctl halt、systemctl poweroff
重启: systemctl reboot
挂起系统: systemctl suspend
快照:systemctl hibernate 保存系统快照
转为睡眠:快照并挂起: systemctl hybrid-sleep