linux中unit笔记

Unit类型

说明
service系统上的一项服务,包括启动、重新启动和停止服务
socket与服务关联的网络套接字
device使用 systemd 专门管理的设备
mount由 systemd 管理的挂载点
automount启动时自动挂载的挂载点
swap交换系统上的空间
target其它 unit 的同步点,通常用于在启动时启动启用的服务
path基于路径激活的路径。例如,您可以根据某条路径的状态(例如是否存在)来启动服务
timer用于安排激活另一个单元的计时器。
snapshot当前 systemd状态的快照。通常用于在对 systemd 进行临时更改后回滚
slice通过 Linux 控制组节点 (cgroups) 限制资源
scope来自 systemd 总线接口的信息。通常用于管理外部系统进程

以.service文件说明

Unit
说明
Description当前 unit 的描述
Documentation文档地址,仅接受类型为:http://、https://、file:、info:、man: 的URI
Requires表示本 unit 与其它 unit 之间存在强依赖关系,如果本 unit 被激活,此处列出的 unit 也会被激活,如果其中一个依赖的 unit 无法激活,systemd 都不会启动本 unit
Wants与 Requires 类似,区别在于如果依赖的 unit 启动失败,不影响本 unit 的继续运行
After表示本 unit 应该在某服务之后启动,选项可参考 systemd.special 中文手册
Before表示本 unit 应该在某服务之前启动,After和Before 字段只涉及启动顺序,不涉及依赖关系
BindsTo与 Requires 类似,当指定的 unit 停止时,也会导致本 unit 停止
PartOf与 Requires 类似,当指定的 unit 停止或重启时,也会导致本 unit 停止或重启
Conflicts如果指定的 unit 正在运行,将导致本 unit 无法运行
OnFailure当本 unit 进入故障状态时,激活指定的 unit
Service
说明
Type=simple默认值,ExecStart字段启动的进程为主进程,服务进程不会 fork,如果该服务要启动其他服务,不要使用此类型启动。
Type=forkingExecStart字段将以fork()方式从父进程创建子进程启动,创建后父进程会立即退出,子进程成为主进程。通常需要指定PIDFile字段,以便 Systemd 能够跟踪服务的主进程对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可
Type=oneshot只执行一次,Systemd 会等当前服务退出,再继续往下执行。适用于只执行一项任务、随后立即退出的服务。通常需要指定RemainAfterExit=yes字段,使得 Systemd 在服务进程退出之后仍然认为服务处于激活状态
Type=dbus当前服务通过 D-Bus 信号启动。当指定的 BusName 出现在 DBus 系统总线上时,Systemd认为服务就绪
Type=notify当前服务启动完毕会发出通知信号,通知 Systemd,然后 Systemd 再启动其他服务
Type=idleSystemd 会等到其他任务都执行完,才会启动该服务。
RemainAfterExit当前服务的所有进程都退出的时候,Systemd 仍认为该服务是激活状态。这个配置主要是提供给一些并非常驻内存,而是启动注册后立即退出,然后等待消息按需启动的特殊类型服务使用的
ExecStart启动当前服务的命令
ExecStartPre启动当前服务之前执行的命令
ExecStartPost启动当前服务之后执行的命令。
TimeoutStartSec定义 Systemd 停止当前服务之前等待的秒数。
ExecStop停止当前服务时执行的命令
ExecStopPost停止当前服务之后执行的命令
KillMode定义 Systemd 如何停止服务,可能的值包括:
control-group(默认值)当前控制组里面的所有子进程,都会被杀掉
process只杀主进程(sshd 服务,推荐值)
mixed主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none没有进程会被杀掉,只是执行服务的 stop 命令。
TimeoutStopSec停止服务时的等待的秒数,如果超过这个时间服务仍然没有停止,systemd 会使用 SIGKILL 信号强行杀死服务的进程。
Restartno(默认值):退出后不会重启
Restarton-success:只有正常退出时(退出状态码为0),才会重启
Restarton-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启(守护进程,推荐值)
Restarton-abnormal:只有被信号终止和超时,才会重启(对于允许发生错误退出的服务,推荐值)
Restarton-abort:只有在收到没有捕捉到的信号终止时,才会重启
Restarton-watchdog:超时退出,才会重启
Restartalways:不管是什么退出原因,总是重启
PIDFile指向当前服务 PID file 的绝对路径。
RestartSecSystemd 重启当前服务间隔的秒数
ExecReload重启当前服务时执行的命令
Environment为服务添加环境变量,如前面的第一个例子中所示。
EnvironmentFile指定加载一个包含服务所需的环境变量列表的文件,文件中的每一行都是一个环境变量的定义。
Nice服务的进程优先级,值越小优先级越高,默认为0。-20为最高优先级,19为最低优先级。
WorkingDirectory指定服务的工作目录。
RootDirectory指定服务进程的根目录( / 目录),如果配置了这个参数后,服务将无法访问指定目录以外的任何文件。
User指定运行服务的用户
Group指定运行服务的用户组
EnvironmentFile指定当前服务的环境参数文件。该文件内部的key=value键值对,可以用$key的形式,在当前配置文件中获取LimitCPU / LimitSTACK / LimitNOFILE / LimitNPROC 等限制特定服务可用的系统资源量,例如 CPU,程序堆栈,文件句柄数量,子进程数量
Install
说明
WantedBy和[Unit]中的 Wants 作用相似,列出的是依赖当前服务的模块。它的值是一个或多个 target,执行enable命令时,符号链接会放入/etc/systemd/system目录下以 target 名 + .wants后缀构成的子目录中。最常见的用法:WantedBy=multi-user.target,表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
RequiredBy和[Unit]的 Requires 作用相似,依赖当前服务的模块。它的值是一个或多个 target,执行enable命令时,符号链接会放入/etc/systemd/system目录下以 target 名 + .required后缀构成的子目录中
Alias当前 Unit 可用于启动的别名
Also当这个服务被 enable/disable 时,将自动 enable/disable 后面列出的每个模块。

原文链接:https://blog.csdn.net/wangzhicheng987/article/details/122315952

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值