systemd 生成器 运行 在启动过程中的什么时候?

At what point in the boot process are systemd generators run?

systemd.generator man page 表示生成器在启动时 运行 非常早,并且它们同时都是 运行。在启动的什么时候它们实际上是 运行?

据我了解,CoreOS 的 ignition is implemented as a generator which runs after the initramfs is mounted but before pivoting to the root filesystem,这是 CoreOS 特有的东西,还是对任何使用 systemd init 的 OS 都通用?

At what point in the bootup are they actually run?

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

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

ignition is implemented as a generator

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

is this a CoreOS specific thing or is this common to any OS using systemd init?

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