SYSTEMD.ECLASS

部分: eclass-manpages (5)
更新: 2024 年 11 月
索引 返回主内容

名称

systemd.eclass - 用于安装 systemd 单元的辅助函数

描述

此 eclass 提供了一组函数,用于在 ebuild 中为 sys-apps/systemd 安装单元文件。

支持的 EAPIS

7 8

示例

inherit systemd

src_configure() {
        local myconf=(
                --enable-foo
                --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
        )

        econf "${myconf[@]}"
}

函数

systemd_get_systemunitdir
输出 systemd 系统单元目录的路径(不包括 ${D})。即使 systemd 未安装,此函数也会始终成功。
systemd_get_userunitdir
输出 systemd 用户单元目录的路径(不包括 ${D})。即使 systemd 未安装,此函数也会始终成功。
systemd_get_utildir
输出 systemd 实用程序目录的路径(不包括 ${D})。即使 systemd 未安装,此函数也会始终成功。
systemd_get_systemgeneratordir
输出 systemd 系统生成器目录的路径(不包括 ${D})。即使 systemd 未安装,此函数也会始终成功。
systemd_get_systempresetdir
输出 systemd 系统预设目录的路径(不包括 ${D})。即使 systemd 未安装,此函数也会始终成功。
systemd_get_sleepdir
输出系统休眠目录的路径。
systemd_dounit <unit>...
安装 systemd 单元。使用 doins,因此它会致命错误。
systemd_newunit <old-name> <new-name>
以新名称安装 systemd 单元。使用 newins,因此它会致命错误。
systemd_douserunit <unit>...
安装 systemd 用户单元。使用 doins,因此它会致命错误。
systemd_newuserunit <old-name> <new-name>
以新名称安装 systemd 用户单元。使用 newins,因此它会致命错误。
systemd_install_serviced <conf-file> [<service>]
安装 <conf-file> 作为模板 <service>.d/00gentoo.conf。如果未指定 <service>,则使用 <conf-file> 并删除 .conf 后缀(例如 foo.service.conf -> foo.service.d/00gentoo.conf)。
systemd_install_dropin [--user] <unit> <conf-file>
安装 <conf-file> 作为 dropin 文件 <unit>.d/00gentoo.conf,覆盖 <unit> 的设置。默认情况下为系统单元 dropin,除非提供 --user,这会导致 dropin 安装到用户单元。必需参数 <conf-file> 可以是 '-',在这种情况下,文件从 stdin 读取,并且 <unit> 也必须指定。
systemd_enable_service <target> <service>
在所需的 target 中启用服务,例如,为其安装符号链接。使用 dosym,因此它会致命错误。
systemd_enable_ntpunit <NN-name> <service>...
将 NTP 服务提供程序添加到 timedated 中的实现列表。<NN-name> 定义新创建的 ntp-units.d 优先级和名称,而剩余的参数列出将添加到该文件的服务单元。

使用 doins,因此它会致命错误。

文档:https://www.freedesktop.org/wiki/Software/systemd/timedated/

systemd_update_catalog
更新 journald 目录。这需要在安装或删除目录文件后调用。这必须在 pkg_post* 阶段调用。

如果 systemd 未安装,则不会执行任何操作。目录将在安装 systemd 后(重新)构建。

请参阅:https://www.freedesktop.org/wiki/Software/systemd/catalog

systemd_is_booted
检查系统是否使用 systemd 启动。

这应该仅用于信息目的,例如,警告用户需要使用 systemd。已安装的文件或应用程序行为*不应*依赖于此。请记住检查 MERGE_TYPE 以避免在二进制软件包构建主机上触发检查!

如果系统使用 systemd 启动,则返回 0,否则返回 1。

请参阅:man sd_booted

systemd_reenable <unit> ...
如果单元当前已启用,则重新启用它们。这会将符号链接重置为 [Install] 部分中指定的默认值。

此函数旨在修复由于移动 systemd 系统单元目录而导致的损坏的符号链接。它应该从 pkg_postinst 中为在 [Install] 部分中定义 'Alias' 选项的系统单元调用。不必调用此函数来修复由 'WantedBy' 和 'RequiredBy' 选项生成的依赖项符号链接。

维护者

[email protected]

报告 Bug

请通过 https://bugs.gentoo.org/ 报告 Bug。

文件

systemd.eclass

另请参阅

ebuild(5)
https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/systemd.eclass


索引

名称
描述
支持的 EAPIS
示例
函数
维护者
报告 Bug
文件
另请参阅

本手册由 man2html 使用手册页创建。
时间:2024 年 11 月 12 日,格林威治标准时间 03:27:00