LINUX.ORG.RU

systemd-nspawn из скрипта или автоматически

 ,


1

1

хочу запустить systemd-nspawn --boot --directory=/mnt с лайв-образа, ну например пикси или юсб, неважно.
цель простая — в процессе установки ОС в /mnt через chroot нельзя работать с сервисами, маскировать их, и всякое такое, даже timedatectl, localectl не работает без запущенного systemd.
а что если заспавнить загрузку, подключится через тот-же ansible и развлекаться по полной программе?
какие есть варианты? что ещё не пробовал: например создать systemd-nspawn@mnt.service как-то заранее и запускать его из скрипта.

★★★★★

Последнее исправление: system-root (всего исправлений: 1)

systemd-nspawn --boot --directory=/mnt;
machinectl shell root@mnt /bin/bash -c "делай тут что душе угодно так же как и с обычным чрутом";
Deleted
()
Ответ на: комментарий от system-root

Запускаешь чрут на стероидах

systemd-nspawn --boot --directory=/mnt &

Затем

machinectl shell root@mnt /bin/bash -c " echo 'И из любого скрпта выполняешь это внём'; systemctl start nginx";

В чём проблема? )

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

всё, только пришёл и понял в чём проблема, надо sleep секунд десять поставить после &. тогда работает. отлично, спасибо.

system-root ★★★★★
() автор топика
Ответ на: комментарий от system-root

Аааа, да )))))))) Я тоже это костыль использую если запускаю ось сразу в скрипте.

Deleted
()

Костылестроители ИТТ. system-root, linux-org-ru:

systemd-run --service-type=notify systemd-nspawn --boot --directory=/mnt

Никаких слипов не нужно, оно само подождёт окончания загрузки контейнера (если там тоже systemd).

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Спасибо конечно, но неочевидная конструкция, от слова совсем. Можно было же аналогичное поведение добавить в сам systemd-nspawn в качестве ключа. Дададада, ты то тут причём и всё такое, но во первых у меня до жути болит голова, а во вторых ты адепт системД, так что непобубнить на тебя грех ::)

Deleted
()
Ответ на: комментарий от Deleted

Можно было же аналогичное поведение добавить в сам systemd-nspawn в качестве ключа.

Тогда ты наезжал бы на systemd за то, что они смешивают функциональность разных слоёв в одной команде, кококо, не юникс-вей.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

создать сервис не заранее, а прям в процессе — норм идея.
вот кстати насчёт костылестроения — noninteractive установка дебиановского grub-pc вообще все рейтинги побьёт. слипы в скриптах цветочки.

system-root ★★★★★
() автор топика
Последнее исправление: system-root (всего исправлений: 2)
Ответ на: комментарий от intelfx

Да нее, отключение интерактивного режима это не смешивание слоёв. Ну да ладно, я вообще не о том я о том что конструкция запуска неочевидна лично мне которую ты показал, вот и всё. А притенении шуточные же. Системд инфраструктура (по иному и не назвать) удобна порой да, сам юзаю некоторые части, но просто часто неочевидна, а порой на грани неадекватности,ну это лично для меня так. Проехали, спасибо за подсказку )

Deleted
()
Ответ на: комментарий от Deleted

Это не «отключение интерактивного режима», такой операции не существует. Это запуск команды как сервиса в контексте PID 1. Добавлять такие вещи в сам systemd-nspawn — это очевидный layering violation.

intelfx ★★★★★
()
Ответ на: комментарий от Deleted

В дебиан 9 симлинки в /var/lib/machines приводили к веселым глюкам с правами на файлы.

Radjah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.