特别声明:以下的所有例子均在centos7版本下实现Systemd :系统启动和服务器守护程序管理器,在系统启动或运行时启用系统资源、服务器进程和其他进程的新功能。
在系统启动时实现服务的同时启动
按需启动守护程序
自动化服务依赖管理
同时采用插座式和D-Bus总线式激活服务
系统状态快照
systemd核心概念unit (设备)类型) unit表示不同类型的systemd对象,由配置文件标识和配置。
文件主要包含系统服务、套接字侦听、保存的系统快照和其他与init相关的信息
unit类型: service :文件扩展名为. service,用于定义系统服务
target :文件扩展名为. target,用于运行级模拟
设备:用于定义内核识别的设备
mount :定义文件系统的挂载点
套接字:用于标识进程之间通信的套接字文件,也可以在系统启动时延迟服务的启动,从而实现按需启动
快照:管理系统快照
swap :用于识别swap设备
自动挂载:文件系统的自动挂载点
path :用于定义文件系统中文件或目录的使用,常用于在文件系统发生更改时延迟服务
那么我们怎么看这些类型呢? 其实很简单,就是运行systemctl -t service typt
以target为例:
那么命令的systemctl是什么? 实际上,systemctl是centos7系统的管理工具
systemctl命令的格式: systemctlcommandname.serviceservice可以省略也可以不写
系统状态添加显示当前服务的状态
图中的黄色框内表示此服务打开前的点为绿色。 那么,关掉后会怎么样呢? 当然有以下两个命令
经常使用() (记在心里哦) ) ) ) ) ) )。
退出服务后的状态如上图所示,下一次执行打开命令的结果如下所示。
以上三个命令比较重要,请记住。 接下来,我们将学习一些服务审阅命令
查看服务的当前活动状态
查看活动服务
所有服务的显示包括打开和关闭。 红色框为关闭的黄色框当前处于活动状态
显示当前服务的状态
服务单元文件格式
/usr/lib/systemd/system目录中有许多文件,例如:
自由打开第一个这样的文件。 其中的各项信息将在以下详细说明
Unit段的常规选项:
说明:说明信息
after :定义unit的启动顺序,并指示当前unit必须在哪个unit之后启动。 其功能与Before相反
Requires :依赖的其他units高度依赖,如果依赖的units无法激活,则当前unit也无法激活
Wants :依赖对象的其他units,弱依赖
conflicts :定义units之间的冲突关系
服务:特定类型的专用选项; 这里是服务类型
类型: unit进程的启动类型,用于定义影响execstart及其相关参数的功能
simple :默认值,此daemon主要由连接到ExecStart的指令序列启动,启动后驻留在内存中
forking :由execstart启动的程序通过spawns将其他子程序扩展为此守护进程的主要服务。 原始的zrdz程序在启动结束时退出
one shot :与simple类似,但此程序在工作结束时退出,不驻留在内存中
dus :与simple类似,但此daemon必须在获取D-Bus的名称后才能工作。 因此,通常还需要同时设置BusNname=
通告:启动完成后将发送通知消息。 此外,还必须与通告访问合作,让系统接收消息
与idle:simple一样,此daemon必须在所有工作都顺利完成后才能运行。 这样的守护程序通常是从打开电源到运行结束就可以了的服务
[ install ] :定义“系统禁用”和“系统禁用”命令用于启用或禁用服务的选项
Alias :别名。 可以使用systemctl command Alias.servic
eRequiredBy:被哪些units所依赖,强依赖
WantedBy:被哪些units所依赖,弱依赖
Also:安装本服务的时候还要安装别的相关服务
以上就是systemctl的一些常用命令和功能,下面是一些其他的命令以供参考:
显示所有单元状态
systemctl 或 systemctl list-units
只显示服务单元的状态
systemctl --type=service
显示sshd服务单元
systemctl –l status sshd.service
验证sshd服务当前是否活动
systemctl is-active sshd
启动,停止和重启sshd服务
systemctl start sshd.service
systemctl stop sshd.service
systemctl restart sshd.service
重新加载配置
systemctl reload sshd.service
列出活动状态的所有服务单元
systemctl list-units --type=service
列出所有服务单元
systemctl list-units --type=service --all
查看服务单元的启用和禁用状态
systemctl list-unit-files --type=service
列出失败的服务
systemctl --failed --type=service
列出依赖的单元
systemctl list-dependencies sshd
验证sshd服务是否开机启动
systemctl is-enabled sshd
禁用network,使之不能自动启动,但手动可以
systemctl disable network
启用network
systemctl enable network
禁用network,使之不能手动或自动启动
systemctl mask network
启用network
systemctl unmask network
查看依赖性:
systemctl list-dependencies graphical.target
级别切换:init N ==> systemctl isolate name.target
systemctl isolate multi-user.target
注:只有/lib/systemd/system/*.target文件中AllowIsolate=yes 才能切换(修改文件需执行systemctl daemon-reload才能生效)
查看target:target是服务的集合
runlevel ; who -r
systemctl list-units --type target
获取默认运行级别:
/etc/inittab ==> systemctl get-default
修改默认级别:
/etc/inittab ==> systemctl set-default name.target
systemctl set-default multi-user.target
ls –l /etc/systemd/system/default.target
切换至紧急救援模式:
systemctl rescue
切换至emergency模式:systemctl emergency
其它常用命令:
传统命令init,poweroff,halt,reboot都成为
systemctl的软链接
关机:systemctl halt、systemctl poweroff
重启:systemctl reboot
挂起:systemctl suspend
休眠:systemctl hibernate
休眠并挂起:systemctl hybrid-sleep