Linux的服务单元与目标

Systemd的单元类型

单元类型单元后缀说明
service.service描述一个服务
socket.socket描述一个套接字
device.device描述一个内核标识设备文件
mount.mount描述一个文件系统挂载点
automount.automount描述一个文件系统自动挂载点
swap.swap描述一个内存交换设备或文件
path.path描述一个系统中的文件或目录
timer.timer描述一个定时器
snapshot.snapshot用于保存一个systemd的状态
scope.scope使用systemd的总线接口以编程方式创建的外部进程
slice.slice描述基于Cgroup的一组通过层次组织的管理系统进程
target.target描述一组systemd的单元

Systemd单元配置文件的位置

目录描述同名配置文件的应用优先级
/usr/lib/systemd/system/由安装RPM包发布的Systemd单元最低
/run/systemd/system/在运行时创建的单元
/etc/systemd/system/有管理员创建和管理的Systemd单元最高

Systemd单元的依赖关系

  • 需求依赖:使用Requires或Wants配置语句描述
  • 顺序依赖:使用Before或After配置语句描述
  • 冲突依赖:使用Conflicts配置语句描述

配置文件语法
单元配置文件包括三节内容:

  • 用于描述本单元相关信息的[Unit]
  • 用户描述本单元的[Install]
  • 用于描述特定单元类型信息的[Service]、[Socket]、[Mount]、[Automount]、[Swap]、[Path]、[Timer]、[Slice]

Systemd单元配置文件[Unit]配置段常用指令

指令说明
Description对当前单元的描述
Documentation说明当前单元的手册和文档
Requires说明启动当前单元时,“必须(强依赖)”启动的单元
RequisiteRequires的强势版,需要启动的单元不成功,Systemd会报错
Wants说明启动当前单元“需要(弱依赖)”启动的单元
Conflicts当前单元不能与那些单元同时启动,启动当前单元会停止与其冲突的单元
Before说明当前单元在那些单元启动之前就启动
After说明当前单元在那些单元启动之后才启动
AllowIsolate若其值为true(默认为false),则当前单元可以用于systemctl isolate

Systemd单元配置文件[Install]配置段常用指令

指令说明
Alias为对当前单元指定别名
WantedBy指定那个或那些单元需要启动当前单元
RequiredBy指定那个或那些单元必须要启动当前单元

Systemd单元配置文件[Service]配置段常用指令

指令说明
ExecStart指定启动服务时执行的命令
ExecStartPre指定启动服务之前执行的命令
ExecStop指定停止服务时执行的命令
ExecReload指定重新加载服务配置文件时执行的命令
KillMode指定服务进程杀死模式,默认值是control-group表示当前单元Cgroup维护的所有进程;process表示仅主进程
Restart指定当前服务需要重启的情况,默认no不需要重启,on-sucess(退出码为0)表示仅当当前服务进程正常退出时才会重启,on-failure(退出码不为0)表示仅当当前服务进程异常退出时才重启
RestartSec指定重启服务之前休眠的时间
EnvironmentFile指定当前服务的环境配置文件

Systemd的目标target
target可以看成是一批服务的集合,里面定义了那些服务需启动,那些不启动。

使用systemctl命令查看target

命令说明
systemctl [list-units] --type target 或 systemctl [list-units] -t target显示当前已激活的目标
systemctl [list-units] --type target -all或 systemctl [list-units] -at target显示当前已加载的所有目标
systemctl list-unit-files --type target 或 systemctl list-unit-files -t target显示systemd的RPM包安装的所有目标
systemctl [–all | -a] list-dependencies < TargetName> .target显示指定目标的依赖关系

使用systemctl管理目标的常用命令

命令说明举例
systemctl get-default显示默认的目标systemctl get-default
systemctl set-default < TargetName>.target设置默认目标(下次启动时生效)systemctl set-default graphical.target
systemctl isolate < TargetName>.target更改当前的目标(立即生效)systemctl isolate multi-user.target
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值