systemd.generator手册页说生成器在启动时很早就运行,并且它们都同时运行。它们实际上在启动时的什么时候运行?
据我了解,CoreOS 的点火是作为生成器实现的,它在安装 initramfs 之后但在转向根文件系统之前运行,这是 CoreOS 特有的东西,还是使用 systemd init 的任何操作系统都通用?
systemd.generator手册页说生成器在启动时很早就运行,并且它们都同时运行。它们实际上在启动时的什么时候运行?
据我了解,CoreOS 的点火是作为生成器实现的,它在安装 initramfs 之后但在转向根文件系统之前运行,这是 CoreOS 特有的东西,还是使用 systemd init 的任何操作系统都通用?
它们实际上在启动时的什么时候运行?
每次启动 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