systemd(二)单元配置文件

概述

对于系统中的每一个单元(unit)都有一个配置文件,用于指示systemd如何启动或停止这个单元。

配置文件格式

在这里插入图片描述

[Unit]区块

[Unit]区块通常是配置文件的第一个区块,用来定义单元的元数据,以及配置与其他单元的关系。它的主要字段如下:

字段作用
Description简短描述
Documentation简短描述
Requires当前单元依赖的其他单元,如果它们没有运行,当前单元会启动失败
Wants与当前单元配合的其他单元,如果它们没有运行,当前单元不会启动失败
Before如果该字段指定的单元也要启动,那么必须在当前单元之后启动
After如果该字段指定的单元也要启动,那么必须在当前单元之前启动
Conflicts这里指定的单元不能与当前单元同时运行
Condition…当前单元运行必须满足的条件,否则不会运行
Assert…当前单元运行必须满足的条件,否则会报启动失败

[Install]区块

[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下:

字段作用
WantedBy它的值是一个或多个Target,当前单元激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target名+.wants后缀构成的子目录中
RequiredBy它的值是一个或多个Target,当前单元激活时,符号链接会放入/etc/systemd/system目录下面以 Target名+.required后缀构成的子目录中
Alias当前单元可用于启动的别名
Also当前单元激活(enable)时,会被同时激活的其它单元

[Service]区块

[Service]区块用于服务的配置,只有Service类型的单元才有这个区块。它的主要字段如下:

字段作用
Type定义服务启动方式
ExecStart启动当前服务的命令
ExecStartPre启动当前服务之前执行的命令
ExecStartPost启动当前服务之后执行的命令
ExecReload重启当前服务时执行的命令
ExecStop停止当前服务时执行的命令
ExecStopPost停止当其服务之后执行的命令
RestartSec自动重启当前服务间隔的秒数
Restart定义何种情况Systemd会自动重启当前服务,可能的值包括always、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec定义Systemd停止当前服务之前等待的秒数
Environment指定环境变量
服务启动方式

Type字段指明了服务启动时进程的行为,其包含如下几种值:

  • Type=simple:默认值,执行ExecStart指定的命令,启动主进程
  • Type=forking:以fork方式从父进程创建子进程,创建后父进程会立即退出
  • Type=oneshot:一次性进程,Systemd会等当前服务退出,再继续往下执行
  • Type=dbus:当前服务通过D-Bus启动
  • Type=notify:与 Type=simple 相同,但约定服务会在就绪后向systemd发送一个信号
  • Type=idle:systemd会等待所有任务处理完成后,才开始执行idle类型的单元。其他行为与 Type=simple 类似

相关参考

  • 《Arch Linux WIKI》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值