❦ 15 janvier 2018 17:03 +0100, Ondrej Zajicek <[email protected]> :

>> A better solution (for me) would be:
>> 
>> [Unit]
>> Description=BIRD Internet Routing Daemon (IPv4)
>> After=network-pre.target systemd-sysctl.service systemd-udevd.service
>> Before=network.target multi-user.target shutdown.target
>> Conflicts=shutdown.target
>> Wants=network.target
>> DefaultDependencies=no
>> 
>> However, it should be noted that makes BIRD start really early (IP may
>> not even have been configured, which is troublesome for implicit router
>> ID). Also, we may miss other dependencies (syslog, /var). After
>> discussing it on #debian-devel, this kind of configuration doesn't get
>> many votes.
>
> Just a question, how this problem is handled by daemons in similar
> position, like hostapd or wpasupplicant?

They use something similar as the proposed solution.

[Unit]
Description=WPA supplicant daemon (interface-specific version)
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
Before=network.target
Wants=network.target

I just noticed that Quagga is using something similar too:

[Unit]
Description=GNU Zebra routing manager
Wants=network.target
Before=network.target
After=network-pre.target

openvswitch:

[Unit]
Description=Open vSwitch
Before=network.target network.service
After=network-pre.target ovsdb-server.service ovs-vswitchd.service
PartOf=network.target

ndisc:

[Unit]
Description=IPv6 Recursive DNS Server discovery Daemon
Documentation=man:rdnssd(8)
Before=network.target
Requires=network.target

So, maybe just:

[Unit]
Description=BIRD Internet Routing Daemon (IPv4)
Before=network.target
Wants=network.target
After=network-pre.target

But again, I think there is no guarantee interfaces have been
configured.
-- 
Write and test a big program in small pieces.
            - The Elements of Programming Style (Kernighan & Plauger)

Attachment: signature.asc
Description: PGP signature

Reply via email to