Blob Blame History Raw
From 91eddf68ca54ba11a22f58de9a4e8f5deb53cccc Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Thu, 20 Oct 2016 12:56:34 +0200
Subject: [PATCH] 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).
---
 redhat/bgpd.service   | 8 +++++---
 redhat/isisd.service  | 8 +++++---
 redhat/ospf6d.service | 8 +++++---
 redhat/ospfd.service  | 8 +++++---
 redhat/ripd.service   | 8 +++++---
 redhat/ripngd.service | 8 +++++---
 redhat/zebra.service  | 6 ++++--
 7 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/redhat/bgpd.service b/redhat/bgpd.service
index 5040284..ef24841 100644
--- a/redhat/bgpd.service
+++ b/redhat/bgpd.service
@@ -1,7 +1,9 @@
 [Unit]
 Description=BGP 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/bgpd.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/bgpd -d $BGPD_OPTS -f /etc/quagga/bgpd.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
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 @@ ExecStart=/usr/sbin/isisd -d $ISISD_OPTS -f /etc/quagga/isisd.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
diff --git a/redhat/ospf6d.service b/redhat/ospf6d.service
index 3c9c466..b53b970 100644
--- a/redhat/ospf6d.service
+++ b/redhat/ospf6d.service
@@ -1,7 +1,9 @@
 [Unit]
 Description=OSPF routing daemon for IPv6
-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/ospf6d.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/ospf6d -d $OSPF6D_OPTS -f /etc/quagga/ospf6d.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
diff --git a/redhat/ospfd.service b/redhat/ospfd.service
index 5e3de23..5d6c5bb 100644
--- a/redhat/ospfd.service
+++ b/redhat/ospfd.service
@@ -1,7 +1,9 @@
 [Unit]
 Description=OSPF 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/ospfd.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/ospfd -d $OSPFD_OPTS -f /etc/quagga/ospfd.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
diff --git a/redhat/ripd.service b/redhat/ripd.service
index d35dc47..ed7f922 100644
--- a/redhat/ripd.service
+++ b/redhat/ripd.service
@@ -1,7 +1,9 @@
 [Unit]
 Description=RIP 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/ripd.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/ripd -d $RIPD_OPTS -f /etc/quagga/ripd.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
diff --git a/redhat/ripngd.service b/redhat/ripngd.service
index 567e888..2519b31 100644
--- a/redhat/ripngd.service
+++ b/redhat/ripngd.service
@@ -1,7 +1,9 @@
 [Unit]
 Description=RIP routing daemon for IPv6
-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/ripngd.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/ripngd -d $RIPNGD_OPTS -f /etc/quagga/ripngd.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
diff --git a/redhat/zebra.service b/redhat/zebra.service
index 27c3a52..f9107f1 100644
--- a/redhat/zebra.service
+++ b/redhat/zebra.service
@@ -1,6 +1,8 @@
 [Unit]
 Description=GNU Zebra routing manager
-After=syslog.target network.target
+Wants=network.target
+Before=network.target
+After=network-pre.target
 ConditionPathExists=/etc/quagga/zebra.conf
 
 [Service]
@@ -11,4 +13,4 @@ ExecStart=/usr/sbin/zebra -d $ZEBRA_OPTS -f /etc/quagga/zebra.conf
 Restart=on-abort
 
 [Install]
-WantedBy=network.target
+WantedBy=multi-user.target
-- 
2.7.4