什么是systemd
CenOS7之前的系统都是使用init进程作为系统启动后的第一个进程,但是init有两个缺点:
1.启动时间长,因为init的进程是串行的,只有前一个启动完毕后一个进程才启动。
2.系统引导时实现服务的并行启动,效率更高,启动更快。
3.自动解决依赖关系
4.服务的启动配置文件统一语法,管理起来更方便。
3.systemd常用管理命令
管理服务运行相关命令:
systectl start nginx #启动服务
systectl stop nginx #停止服务
systectl restart nginx #重启服务
systectl reload nginx #重新加载服务配置文件
systectl status nginx #查看服务的运行状态 status状态
systectl is-active nginx #查看服务是否正在运行 is-active是活动的
服务运行状态说明:
#当我们使用system status 查看一个服务的运行状态时,有以下几种情况
loaded #配置文件已经被加载
active(running) #服务正在运行
inactive(dead) #服务没有运行
enabled #服务被设定为开机自启动
disabled #服务被设定为开机不自启动
static #服务开机不启动,但是可以被其他服务调用启动
管理服务开机启动相关命令:
systemctl enable nginx #设置服务开机自启动
systemctl disable nginx #设置服务开机不自启动
systemctl is-enabled nginx #查看服务是否开机自启动
systemctl list-unit-files #查看所有服务的开机自启动状态
systemctl daemon-reload #重新载入更改的system配置文件
4.systemd文件格式
systemd文件路径说明:
/etc/systemd/system/ #系统自带的启动文件
/usr/lib/systemd/system/ #一般使用软件包安装的软件的启动配置文件在则会个目录下
systemd文件格式说明:
systemd unit文件通常是由三部分组成的
[unit] #一般定义的通用选项,比如描述信息,依赖关系等
[service] #特定服务的类型,具体的启动关闭重启选项都在此部分配置
[install] #定义由开机自启动和不开机自启命令时实现的选项
unit段常用说明:
description #描述信息
documentation #说明文档的在线地址
after #定义启动顺序,表示当前配置的服务应该晚与哪些服务之后启动
wants #依赖其他的服务
service段常用说明:
type #定义服务类型
forking #需要父进程启动子进程的服务类型为forking
pidfile #定义pid文件路径
execstart #指定启动服务命令绝对路径
execstop #指定停止服务命令绝对路径
execstartpre #在启动之前运行的命令
execstartpose #在启动之后运行的命令
install段常用说明:
wantedby #哪些服务需要被依赖