1.14. 扩展默认单元配置


您可以使用额外的 systemd 配置选项扩展默认单元文件。

流程

  1. /etc/systemd/system/ 中创建一个配置目录:

    # mkdir /etc/systemd/system/<name>.service.d/
    Copy to Clipboard Toggle word wrap

    <name> 替换为您要扩展的服务的名称。语法适用于所有单元类型。

  2. 创建一个带有 .conf 后缀的配置文件:

    # touch /etc/systemd/system/name.service.d/<config_name>.conf
    Copy to Clipboard Toggle word wrap

    <config_name> 替换为配置文件的名称。此文件遵循正常的单元文件结构,且您必须在适当的部分中指定所有指令,请参阅 单元文件结构

    例如,要添加自定义依赖项,请使用以下内容创建配置文件:

    [Unit]
    Requires=<new_dependency>
    After=<new_dependency>
    Copy to Clipboard Toggle word wrap

    <new_dependency> 代表要被标记为依赖项的单元。另一个例子是主进程退出后重新启动服务的配置文件,延迟 30 秒:

    [Service]
    Restart=always
    RestartSec=30
    Copy to Clipboard Toggle word wrap

    创建仅关注于一项任务的小配置文件。这些文件可轻松地移动或者链接到其他服务的配置目录。

  3. 将更改应用到单元:

    # systemctl daemon-reload
    # systemctl restart <name>.service
    Copy to Clipboard Toggle word wrap

例 1.1. 扩展 httpd.service 配置

要修改 httpd.service 单元,以便在启动 Apache 服务时自动执行自定义 shell 脚本,请执行以下步骤。

  1. 创建目录和自定义配置文件:

    # mkdir /etc/systemd/system/httpd.service.d/
    Copy to Clipboard Toggle word wrap
    # touch /etc/systemd/system/httpd.service.d/custom_script.conf
    Copy to Clipboard Toggle word wrap
  2. 通过将以下文本插入到 custom_script.conf 文件中,指定您要在主服务进程后执行的脚本:

    [Service]
    ExecStartPost=/usr/local/bin/custom.sh
    Copy to Clipboard Toggle word wrap
  3. 应用单元更改:

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
    # systemctl restart httpd.service
    Copy to Clipboard Toggle word wrap
注意

/etc/systemd/system/ 配置目录中的文件优先于 /usr/lib/systemd/system/ 中的单元文件。因此,如果配置文件包含只可以指定一次的选项,如 DescriptionExecStart,则此选项的默认值会被覆盖。请注意,在 systemd-delta 命令的输出中(在 Monitoring overrides units 中所述)中,比如这个单元总是被标记为 [EXTENDED],即使总和和一些选项也会被覆盖。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat