Я намагаюся створити нову службу (під Debian Jessie), яка потребує встановлення деяких вершин, де зберігається конфігурація мережі, і тому ця послуга повинна завершитися перед запуском мережі.
Я спробував таке:
[Unit]
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
#Before=network-pre.target
Before=networking.service
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=networking.service
Використовуючи, systemd-analyze plotя бачу, що моя служба запускається, але networking.serviceпочинається приблизно на 3 секунди раніше:
Мабуть, моя конфігурація неправильна, але мені важко знайти проблему ... Будь-яка допомога дуже вдячна ..
Оновлення
Наразі я вирішив це, змінивши конфігурацію служби для запуску раніше, local-fs.targetа не networking.service:
[Unit]
DefaultDependencies=no
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=local-fs.target
І все-таки я хотів би зрозуміти, чому моя перша конфігурація не працювала так, як очікувалося ...?
/etc/network/interfacesмає посилання на ip-upскрипти, які перебувають в іншому розділі. Цей розділ змонтований складним сценарієм, /opt/intermodul-mounts/start.shякий необхідно запустити до налаштування мережі. В даний час ip-upсценарії фактично не запускаються, оскільки вони не доступні під час завантаження. Запуск service networking restartпісля цього приводить коректно всі інтерфейси.
