systemd: various service file improvements
(1) network.target is generally used as a synchronization point during
boot up and not as a "boot target" (target where services are actually
enabled). Also as per 'man 7 systemd.special', service implementing
networking should pull network.target into transaction and order itself
before it. Hence, it doesn't make sense for zebra and friends to be
enabled in network.target, because they should actively pull in
network.target into boot transaction. Let's enable them as normal
services in multi-user.target and order against network{,-pre}.target
appropriately.
(2) All quagga daemons needs zebra to be running at all times and want
to restarted/stopped whenever zebra is. This is expressed by BindsTo=
dependency in a unit file (note "s" in Binds).
diff --git a/redhat/isisd.service b/redhat/isisd.service
index 4cdf67d..edb6eea 100644
--- a/redhat/isisd.service
+++ b/redhat/isisd.service
@@ -1,7 +1,9 @@
[Unit]
Description=IS-IS routing daemon
-BindTo=zebra.service
-After=syslog.target network.target zebra.service
+BindsTo=zebra.service
+Wants=network.target
+After=zebra.service network-pre.target
+Before=network.target
ConditionPathExists=/etc/quagga/isisd.conf
[Service]
@@ -11,4 +13,4 @@
Restart=on-abort
[Install]
-WantedBy=network.target
+WantedBy=multi-user.target