搜索

1.13. 修改现有单元文件

download PDF

如果要修改现有的单元文件,请进到 /etc/systemd/system/ 目录。请注意,您不应该修改系统存储在 /usr/lib/systemd/system/ 目录中的默认单元文件。

步骤

  1. 根据所需更改的程度,选择以下方法之一:

    • /etc/systemd/system/<unit>.d/ 中为补充配置文件创建一个目录。我们推荐在大多数用例中使用这个方法。您可以使用额外的功能扩展默认配置,同时仍然指向原始单元文件。因此,软件包升级引入的默认单元的更改会被自动应用。如需更多信息,请参阅扩展默认单元配置
    • /etc/systemd/system/ 目录中创建 /usr/lib/systemd/system/ 目录 中原始单元文件的一个副本,并进行修改。这个副本会覆盖原始文件,因此不会应用软件包更新带来的更改。这个方法对无论软件包更新都应保留的重要单元更改都很有用。有关详细信息,请参阅覆盖默认单元配置
  2. 要返回单元的默认配置,请删除 /etc/systemd/system/ 目录中自定义的配置文件。
  3. 对单元文件应用更改,而不重启系统:

    # systemctl daemon-reload

    daemon-reload 选项重新加载所有单元文件,并重新创建依赖项树,这需要立即将任何更改应用到单元文件中。作为一种替代方案,您可以使用以下命令获得同样的效果:

    # init q
  4. 如果修改后的单元文件属于一个正在运行的服务,请重启服务:

    # systemctl restart <name>.service
重要

要修改由 SysV initscript 处理的服务的属性,如依赖项或超时,请不要修改 initscript 本身。相反,为服务创建一个 systemd 置入配置文件,如 扩展默认的单元配置覆盖默认的单元配置 中所述。

然后,像普通的 systemd 服务那样管理该服务。

例如:要扩展 network 服务的配置,不要修改 /etc/rc.d/init.d/network initscript 文件。反之,创建新目录 /etc/systemd/system/network.service.d/ 和一个 systemd drop-in 文件 /etc/systemd/system/network.service.d/my_config.conf。然后将修改的值放到 drop-in 文件中。注: systemd 知道 network 服务为 network.service,这就是为什么创建的目录必须名为 network.service.d

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.