web-dev-qa-db-ja.com

起動時にsystemd-nspawn / systemdコンテナを起動します

私はsystemd-nspawnを使用していて、システムの起動時に自動的に起動したいコンテナーがいくつかあります。

私はArchLinuxを使用しており、 archwiki エントリによると、次のコードでうまくいくはずです。

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

コンテナMyContainerが/ var/lib/machineにあり、次のようなもので作成されたと仮定します。

# 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]を実行してもエラーは表示されません。誰かが私が何をする必要があるか知っていますか?別のサービスを実行する必要があるのでしょうか?

2
flooose

もう少し調べてみると、問題が見つかりました。別のサービスを実行する必要があるわけではありませんが、代わりに別のtarget、具体的にはmachines.target、だから走っている

systemctl enable machines.target

上記のコマンドに加えて、MyContainerが起動時に開始するようにしました。

ちなみに、これはすぐにはわかりませんでした。

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

私の両方のコンピューター(両方ともArch Linuxを実行している)では、machines.targetはリストに含まれていません。理由はわかりませんが、それが修正されました。

1
flooose