【问题标题】:At what point in the boot process are systemd generators run?systemd 生成器在启动过程中的什么时候运行?
【发布时间】:2018-05-14 07:52:42
【问题描述】:

systemd.generator man page 表示生成器在启动时很早就运行,并且它们都同时运行。它们实际上是在启动的哪个时间点运行的?

据我了解,CoreOS 的 ignition 是作为运行 after the initramfs is mounted but before pivoting to the root filesystem 的生成器实现的,这是 CoreOS 特有的东西,还是使用 systemd init 的任何操作系统都通用?

【问题讨论】:

    标签: init systemd coreos coreos-ignition


    【解决方案1】:

    它们实际上是在启动的什么时候运行的?

    每次启动 systemd-pid1 管理器时它们都会运行:https://github.com/systemd/systemd/blob/v235/src/core/manager.c#L1333

    实际上,这意味着在执行 pid1 时或在守护程序重新加载之后作为最开始的步骤之一。后者还包括 initramfs 和真正的 rootfs 之间的转换。

    点火被实现为发电机

    Ignition 不是作为生成器实现的,而是作为首次启动的 initramfs 服务实现的。如果您阅读任何文档页面,说明ignition 是一个systemd 生成器,请报告一个错误,因为它不正确。

    这是 CoreOS 特有的东西,还是任何使用 systemd init 的操作系统都通用?

    Ignition 是 CoreOS 特定的组件。它是开源的,可以移植到任何基于 systemd 的发行版,但我不知道有任何其他发行版使用它。见https://github.com/coreos/ignition

    【讨论】:

    • 太棒了,我想我只是误解了this - 所以我猜点火装置只是使用发电机设置的
    • 点火执行被分割到不同的阶段(磁盘、文件、淬火),它们通过 dracut 作为 initramfs 中的普通 systemd 服务单元安装:github.com/coreos/bootengine/tree/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多