Рейтинг:0

Как я могу заставить systemd ждать запуска модуля до тех пор, пока не будет выполнено определенное условие

флаг cn

Я все еще пытаюсь понять конфигурацию зависимостей последовательности загрузки в файлах модулей systemd. Я читал инструкцию (systemd.unit).

Я попытался добавить зависимости, используя После= и Требуется= строки в файл конфигурации моего устройства. Однако он по-прежнему регулярно дает сбой во время запуска системы, потому что systemd запускает его слишком рано, прежде чем необходимый ресурс (в моем случае зашифрованный том LUKS) стал доступным. В моих тестах было похоже, что systemd игнорирует эти строки конфигурации. Содержание этих строк также нет в списке при использовании команды:

systemctl список зависимостей

для проверки настроенных зависимостей. Пример: Громкость моего устройства /dev/дм-6. Как я могу указать, что systemd должен ждать с запуском моего устройства, пока это устройство наконец не появится?

Если я запущу свое устройство вручную в окне терминала после загрузки с помощью этой команды:

запуск системы name_of_my_unit

это работает нормально.

Рейтинг:0
флаг es

systemd.устройство может быть то, что вы хотите

Файл конфигурации модуля, имя которого заканчивается на ".device", содержит информацию о модуле устройства, представленную в дереве устройств sysfs/udev(7). Это может использоваться для определения зависимостей между устройствами и другими модулями. ... Устройства названы в честь путей /sys/ и /dev/, которыми они управляют. Пример: устройство /dev/sda5 отображается в systemd как dev-sda5.device.

Ссылки

Рейтинг:0
флаг sa

Может быть, вы должны проверить ExecStartPre= и ExecCondition=. Похоже, они могут решить вашу проблему.

Рейтинг:0
флаг cn

RequiresMountsFor=/mnt/volume

Где путь находится в требуемой точке монтирования.

pefu avatar
флаг cn
Я не могу использовать RequiresMountFor=, потому что в моем случае проблема заключается в устройстве, которое монтируется позже внутри устройства. Более конкретно: устройство LUKS и cryptsetup обрабатываются в домене Xen dom0, а рассматриваемый модуль systemd запускает виртуальную машину, к которой это устройство должно быть подключено перед запуском.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.