一、systemctl 理解
Linux 服务管理两种方式 service 和 systemctl
systemd 是 Linux 系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd 对应的进程管理命令是 systemctl 。
1、systemctl 命令兼容了 service
即 systemctl 也会去 /etc/init.d 目录下,查看、执行相关程序
systemctl redis start
systemctl redis stop
# 开机自启动
systemctl enable redis
2、systemctl 命令管理 systemd 的资源 Unit
systemd 的 Unit 放在目录
Centos:/usr/lib/systemd/system
Ubuntu:/etc/systemd/system
主要有四种类型文件.mount、.service、.target、.wants
.mount文件
.mount文件定义了一个挂载点,[Mount]节点里配置了What、Where、Type 三个数据项
等同于以下命令:
mount -t hugetlbfs /dev/hugepages hugetlbfs
.service文件
.service 文件定义了一个服务,分为[Unit]、[Service]、[Install] 三个小节
[Unit]
Description:描述,
After:在network.target,auditd.service启动后才启动
ConditionPathExists: 执行条件
[Service]
EnvironmentFile:变量所在文件
ExecStart: 执行启动脚本
Restart: fail时重启
[Install]
Alias:服务别名
WangtedBy: 多用户模式下需要的
.target文件
.target 定义了一些基础的组件,供 .service 文件调用
.wants文件
.wants文件定义了要执行的文件集合,每次执行,.wants文件夹里面的文件都会执行
二、常用命令
start:立刻启动后面接的 unit。
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
(SAW:Game Over!)