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





转载于:https://blog.51cto.com/limingyu/1952139