利用 systemd 的 Linux 容器初始化脚本

利用 systemd 的 Linux 容器初始化脚本

我正在尝试为我的 systemd-nspawn 容器制作一个模板文件系统。容器文件系统将通过 btrfs 快照从此模板克隆。我需要容器在容器首次启动时运行初始化脚本。在阅读了很多文档之后,我编写了以下 systemd 单元。

/etc/systemd/system/init-script.service

[Unit]
Description=Init script
Wants=network-online.target first-boot-complete.target
After=network-online.target
Before=first-boot-complete.target
ConditionFirstBoot=yes

[Service]
Type=oneshot
ExecStart=/root/init-script.sh

但我仍然不太清楚 systemd 启动过程,我不确定哪个 systemd 目标应该拉入我的 init-script.service 。

我应该使用

[Unit]
DefaultDependencies=no

[Install]
WantedBy=sysinit.target

或者

[Install]
WantedBy=multi-user.target

初始化脚本的内容是设置该容器的服务的命令,例如设置Apache反向代理或Postfix。

相关内容