2014-01-23 5 views
2

Есть ли способ настроить службу systemd (например, serviceX), чтобы дождаться, когда служба connmand завершит настройку сетевых интерфейсов до запуска serviceX? Из того, что я понимаю в systemd, используя или полагаясь на network.target, бессмысленно, потому что эта функциональность ужасно нарушена. Система, которую я использую (BeagleBone Black с Angstrom Linux), использует connman, а не NetworkManager.Подождите, пока connman завершит настройку сети в системе sytemd

ответ

0

Wants=network.target network-online.target и After=network.target network-online.target кажется недостаточным для Angstrom на BeagleBone Black на момент написания этой статьи. Я также должен был добавить connman.service в Wants=, чтобы все работало правильно.

+0

Вы уверены, что это правильный путь. На мой взгляд, если вы используете * connman, то у вас есть connman.service * enabled *, и поэтому вам не нужно 'Wants = connman.service' в любой из сервисов, которые зависят от сети. Посмотрите примеры тестирования в билете NM bugzilla, который я связал. Также было бы неплохо, если бы вы могли затронуть эту проблему с помощью средства отчетности об ошибках распространения. –

+0

Кстати, что в вашем 'connman.service'? –

+0

Нет, я не уверен, что это путь, но он работает, и у меня нет времени задерживаться на этом и исследовать его дальше, так как у меня есть другие проекты, которые нужно сделать. Ниже приводится содержание моего connman.service файла: [Unit] Описание = Служба подключения После = syslog.target [Service] Type = DBus BusName = net.connman ExecStart =/USR/SBIN/connmand -n [Установить] WantedBy = multi-user.target –

-2

Следуя инструкции here, я обнаружил, что эта линия (в секции [Unit] файл .Service) работала для меня:

Wants=network-online.target #wait for network up. Can slow down script. 

Я применил это исправление для целей, описанных, чтобы получить opkg upgrade работая правильно, что он делает сейчас. Я думаю, использование network-online вместо network может быть фокусом.

+0

Это не сработает, потому что Wants не влияет на порядок. –

+1

Чтобы быть более понятным, это само по себе (1) обычно не решает проблему и (2) комментарий после того, как директива неверна. –

4

Согласно Systemd документации, все Systemd блоки, которые должны ждать рабочего онлайн подключение во время загрузки должны включать в себя следующее:

[Unit] 
... 
Wants=network-online.target 
After=network-online.target 

Если вы хотите, чтобы быть совместимым с более старыми Systemd версиями, вы можете также используют:

[Unit] 
... 
Wants=network.target network-online.target 
After=network.target network-online.target 

Это для системыd. С NetworkManager (для полноты я знаю, что вы его не используете), это работает с восходящими версиями 0.9.10, а некоторые дистрибутивы, включая Fedora, также работали со старыми версиями предыдущих версий.

https://bugzilla.gnome.org/show_bug.cgi?id=728965

Как вы используете Connman вместо этого, вам нужно проверить, реализует ли Connman network-online.target правильно. Проверка исходного кода connander 1.30 не обнаруживает внешний вид network-online.target, поэтому я должен предположить, что connman отстает. Возможно, вам захочется запустить запрос функции в connman и/или вашем дистрибутиве linux. В этом случае было бы неплохо добавить примечание об этом здесь.

В основном, с более новыми версиями systemd, сетевым сервисом, который правильно реализует network-online.target, и службами, использующими правильные зависимости, все должно работать из коробки для пользователя.

Согласно комментарию к другому ответу, секция Единицы connman.service выглядит следующим образом:

[Unit] 
Description=Connection service 
After=syslog.target 

Там должно быть действительно на Before=network.target, по крайней мере. After=syslog.target является избыточным с текущими версиями systemd. Но предпочтительной будет полная реализация network-online.target.

+0

Ваш ответ не помог решить мою проблему, но он дает полезную информацию, поэтому спасибо. –

+0

Как я все еще вижу активность в этом вопросе, обновленную по отношению к текущей ситуации. –

Смежные вопросы