搜索

1.14. 扩展默认单元配置

download PDF

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

步骤

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

    # mkdir /etc/systemd/system/<name>.service.d/

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

  2. 创建一个带有 .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

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

  3. 对单元应用更改:

    # systemctl daemon-reload
    # systemctl restart <name>.service

例 1.1. 扩展 httpd.service 配置

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

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

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

    [Service]
    ExecStartPost=/usr/local/bin/custom.sh
  3. 应用单元更改:

    # systemctl daemon-reload
    # systemctl restart httpd.service
注意

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.