Red Hat Training
A Red Hat training course is available for RHEL 8
17.14. 扩展默认单元配置
这部分描述了如何使用额外的配置选项扩展默认的单元文件。
流程
要使用额外的配置选项扩展默认的单元文件,请首先在
/etc/systemd/system/
中创建一个配置目录。如果扩展服务单元,以root
用户身份执行以下命令:mkdir /etc/systemd/system/name.service.d/
使用您要扩展的服务的名称替换 name。以上语法适用于所有单元类型。
在上一步中创建的目录中创建配置文件。请注意,文件名必须以 .conf 后缀结尾。类型:
touch /etc/systemd/system/name.service.d/config_name.conf
使用配置文件的名称替换 config_name。此文件遵循通常的单元文件结构,因此必须在合适的部分中指定所有的指令,请参阅 单元文件结构。
例如,要添加自定义依赖项,请使用以下内容创建配置文件:
[Unit] Requires=new_dependency After=new_dependency
这里的 new_dependency 代表这个单元被标记为依赖项。另一个例子是主进程退出后重新启动服务的配置文件,延迟 30 秒:
[Service] Restart=always RestartSec=30
建议您创建仅关注一项任务的小配置文件。这些文件可轻松地移动或者链接到其他服务的配置目录。
要应用对单位所做的更改,以
root
用户身份执行:systemctl daemon-reload
systemctl restart name.service
例 17.1. 扩展 httpd.service 配置
要修改 httpd.service 单元,以便在启动 Apache 服务时自动执行自定义 shell 脚本,请执行以下步骤。
创建目录和自定义配置文件:
# mkdir /etc/systemd/system/httpd.service.d/
# touch /etc/systemd/system/httpd.service.d/custom_script.conf
如果想要用 Apache 自动启动的脚本位于
/usr/local/bin/custom.sh
,在custom_script.conf
文件中插入以下文本:[Service] ExecStartPost=/usr/local/bin/custom.sh
要应用单元更改,请执行:
# systemctl daemon-reload
# systemctl restart httpd.service
/etc/systemd/system/
配置文件中的配置文件优先于 /usr/lib/systemd/system/
中的单元文件。因此,如果配置文件包含一个只能指定一次的选项,如 Description
或 ExecStart
,则此选项的默认值可被覆盖。请注意,在 systemd-delta
命令的输出中,如 监控覆盖单元 中所述,这些单元总是被标记为 [EXTENDED],即使在总和中,某些选项实际上也会被覆盖。