impatt |
|
Темы:
29
Сообщения:
100
Участник с: 04 июня 2007
|
Всем привет. Кое-какие проблемы с запуском демонов, которые биндятся на IP-адрес интерфейса: использую для настройки сети netctl, а точнее - сервис netctl@eth1 - например. Судя по содержимому unit-файла, в нём прописаны зависимости типа: Before=network.target, Wants=network.target (вообще, тут говорится, что вроде как нельзя в Wants её писать - если я правильно понял), а тип запуска сервиса notify, что означает, что управление он возвращает немедленно, а конфигурирование интерфейса продолжается в фоне. В результате получается, что, например, postfix имеет зависимость After=network.target, и, как я понимаю, network.target достигается немедленно после старта netctl@, интерфейсы и IP-адреса ещё не сконфигурировались, и systemd решает, что уже можно запускать тот же postfix. А так как у него в конфиге прописан IP, на который надо биндится, а IP ещё не прописался, то и postfix обламывается, не запускается. На самом деле, не только postfix, а ещё ряд сервисов. Вопрос: как поглядеть зависимости запуска юнитов с учётом Before/After ? systemctl list-dependensies, как я понял, эти атрибуты не учитывает. Может быть, надо запускать сервис netctl-wait-online.service (вроде как у него зависимость Before=network-online.target, что согласно документации, если я правильно понял, такая-же псевдо-цель, как network.target, но которая достигается после полного конфигурирования сети), и в демонах типа того же postfix прописать зависимость After=network-online.target ? Кто нибудь разбирался в этих замутах ? Может, в двух словах объясните, как оно реально работает ? Сейчас я подпёр костылями, прописав в service-файлах демонов, которые обламываются из-за сети, ExecStartPre=/usr/bin/sleep 3, но это, канеш, реальные костыли. Спасибо. |
indeviral |
|
Темы:
38
Сообщения:
3165
Участник с: 10 августа 2013
|
ссылка
Ошибки в тексте-неповторимый стиль автора©
|