我一直在使用 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
都没有包含在列表中。不知道为什么,但这就是解决办法。