在启动时启动 systemd-nspawn/systemd 容器

在启动时启动 systemd-nspawn/systemd 容器

我一直在使用 systemd-nspawn,并且有几个容器希望在系统启动时自动启动。

我正在使用 arch linux,并且根据维基百科输入,下面的代码应该可以解决问题

# systemctl enable [email protected]
# systemctl start [email protected]

假设容器MyContainer位于 /var/lib/machines 中,并使用类似以下内容创建:

# pacstrap -i -c -d /var/lib/machines/MyContainer base

我可以使用以下命令启动容器:

# sudo systemd-nspawn -b -D /var/lib/machines/MyContainer

# systemctl start [email protected]

# machinectl start MyContainer

但我无法让容器在启动时启动,并且在启动后立即运行不会显示任何错误。有人知道我需要做什么吗?是否可能需要运行另一项服务?sudo systemctl status [email protected]

答案1

经过进一步的研究,我发现了问题所在。问题不在于需要运行另一项服务,而是需要运行另一项目标,具体来说machines.target,所以运行

systemctl enable machines.target

除了上述命令之外,还使其MyContainer在启动时启动。

顺便说一句,这一点并不是立即清楚的,因为当我打电话时

systemctl list-units --all --type=target

在我的两台电脑上(都运行 arch linux),machines.target都没有包含在列表中。不知道为什么,但这就是解决办法。

相关内容