2

Я работал с systemd-nspawn и у меня есть пара контейнеров, которые я хотел бы автоматически запускать при запуске системы.

Я использую Arch Linux и в соответствии с записью Archwiki , следующий код должен сделать трюк

# systemctl enable systemd-nspawn@MyContainer.service
# systemctl start systemd-nspawn@MyContainer.service

Предполагая, что контейнер MyContainer находится в /var /lib /machines и был создан с чем-то вроде:

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

Я могу начать контейнер с:

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

а также

# systemctl start systemd-nspawn@MyContainer.service

так же как

# machinectl start MyContainer

но я просто не могу заставить контейнер запускаться при загрузке и запускать sudo systemctl status systemd-nspawn@MyContainer.service сразу после загрузки не показывает никаких ошибок. Кто-нибудь знает, что мне нужно делать? Может быть, должен быть запущен другой сервис?

1 ответ1

1

Проведя немного больше исследований, я обнаружил проблему. Дело не в том, что должен быть запущен другой сервис, а в другом объекте, в частности machines.target , поэтому он работает

systemctl enable machines.target

в дополнение к вышеприведенным командам сделано так, что MyContainer запускается при загрузке.

Как примечание, это было не сразу понятно, потому что, когда я звоню

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

на обоих моих компьютерах (оба работают под управлением Linux), machines.target не включен в список. Не уверен почему, но это было исправлением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .