From cbf98b024045839c94ac820a205560b092ed2953 Mon Sep 17 00:00:00 2001 From: sharpd Date: Fri, 19 Feb 2016 11:08:19 -0800 Subject: [PATCH] debian: Fixup 'systemctl restart quagga' The ability to restart was just restarting all daemons. Modify code so that only daemons running *or* enabled are started. Ticket: CM-9384 Signed-off-by: Donald Sharp --- debian/bgpd.service | 1 + debian/isisd.service | 1 + debian/ospf6d.service | 1 + debian/ospfd.service | 1 + debian/ospfd@.service | 1 + debian/quagga.install | 1 + debian/quagga.service | 14 +++++++------- debian/ripd.service | 1 + debian/ripngd.service | 1 + debian/zebra.service | 1 + tools/startup | 20 ++++++++++++++++++++ 11 files changed, 36 insertions(+), 7 deletions(-) create mode 100755 tools/startup diff --git a/debian/bgpd.service b/debian/bgpd.service index c7dc9418f3..3162df1a4a 100644 --- a/debian/bgpd.service +++ b/debian/bgpd.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/bgpd $BGPD_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/usr/bin/touch /var/run/quagga/bgpd.was_running [Install] WantedBy=network-online.target diff --git a/debian/isisd.service b/debian/isisd.service index ba2ca68212..888aaa0620 100644 --- a/debian/isisd.service +++ b/debian/isisd.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/isisd $ISISD_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/bin/touch /var/run/quagga/isisd.was_running [Install] WantedBy=network-online.target diff --git a/debian/ospf6d.service b/debian/ospf6d.service index 2dee461acf..31a9cd4777 100644 --- a/debian/ospf6d.service +++ b/debian/ospf6d.service @@ -16,5 +16,6 @@ RestartSec=5 Restart=on-abnormal ExecStart=/usr/lib/quagga/ospf6d $OSPF6D_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/usr/bin/touch /var/run/quagga/ospf6d.was_running [Install] WantedBy=network-online.target diff --git a/debian/ospfd.service b/debian/ospfd.service index 907d546d76..92c310f642 100644 --- a/debian/ospfd.service +++ b/debian/ospfd.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/ospfd $OSPFD_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/usr/bin/touch /var/run/quagga/ospfd.was_running [Install] WantedBy=network-online.target diff --git a/debian/ospfd@.service b/debian/ospfd@.service index 2cdaea8642..eb3fe9c1d9 100644 --- a/debian/ospfd@.service +++ b/debian/ospfd@.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/ospfd $OSPFD_OPTIONS -n %I ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/bin/touch /var/run/quagga/ospfd.%I.was_running [Install] WantedBy=network-online.target diff --git a/debian/quagga.install b/debian/quagga.install index 7d50178e34..0c3db58ffa 100644 --- a/debian/quagga.install +++ b/debian/quagga.install @@ -3,6 +3,7 @@ usr/bin/vtysh usr/include/quagga/ usr/lib/ tools/quagga-reload.py usr/lib/quagga/ +tools/startup usr/lib/quagga/ usr/share/doc/quagga/ usr/share/man/man1/vtysh.1 usr/share/man/man8 diff --git a/debian/quagga.service b/debian/quagga.service index 0113819f5f..f052740b8f 100644 --- a/debian/quagga.service +++ b/debian/quagga.service @@ -8,13 +8,13 @@ Type=simple RemainAfterExit=yes TimeoutSec=2m30s TimeoutStopSec=1m -ExecStartPre=-/bin/systemctl start zebra.service -ExecStartPre=-/bin/systemctl start bgpd.service -ExecStartPre=-/bin/systemctl start isisd.service -ExecStartPre=-/bin/systemctl start ospfd.service -ExecStartPre=-/bin/systemctl start ospf6d.service -ExecStartPre=-/bin/systemctl start ripd.service -ExecStartPre=-/bin/systemctl start ripngd.service +ExecStartPre=-/usr/lib/quagga/startup zebra +ExecStartPre=-/usr/lib/quagga/startup bgpd +ExecStartPre=-/usr/lib/quagga/startup isisd +ExecStartPre=-/usr/lib/quagga/startup ospfd +ExecStartPre=-/usr/lib/quagga/startup ospf6d +ExecStartPre=-/usr/lib/quagga/startup ripd +ExecStartPre=-/usr/lib/quagga/startup ripngd ExecStartPost=-/usr/bin/vtysh -b -n # ExecReload=/usr/lib/quagga/quagga-reload.py --reload /etc/quagga/Quagga.conf diff --git a/debian/ripd.service b/debian/ripd.service index 661b83b5c2..f322d8db5f 100644 --- a/debian/ripd.service +++ b/debian/ripd.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/ripd $RIPD_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/usr/bin/touch /var/run/quagga/ripd.was_running [Install] WantedBy=network-online.target diff --git a/debian/ripngd.service b/debian/ripngd.service index cd39feeb8d..8c406e972b 100644 --- a/debian/ripngd.service +++ b/debian/ripngd.service @@ -17,5 +17,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/ripngd $RIPNGD_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/bin/touch /var/run/quagga/ripngd.was_running [Install] WantedBy=network-online.target diff --git a/debian/zebra.service b/debian/zebra.service index e540e49330..281a162d2d 100644 --- a/debian/zebra.service +++ b/debian/zebra.service @@ -16,5 +16,6 @@ Restart=on-abnormal LimitNOFILE=1024 ExecStart=/usr/lib/quagga/zebra $ZEBRA_OPTIONS ExecStartPost=/usr/bin/vtysh -b -n +ExecStopPost=/usr/bin/touch /var/run/quagga/zebra.was_running [Install] WantedBy=network-online.target diff --git a/tools/startup b/tools/startup new file mode 100755 index 0000000000..7ebb5116a1 --- /dev/null +++ b/tools/startup @@ -0,0 +1,20 @@ +#!/bin/bash +# Script to see if we should startup the particular +# daemon as part of systemd initialization +# If the daemon was running (set by the ExecStopPost +# action in the Unit file ) or if the daemon +# is enabled start it up +FILE="/var/run/quagga/$1.was_running" +if [ -e $FILE ] +then + rm $FILE + systemctl start $1 +fi + +systemctl is-enabled $1 > /dev/null +if [ $? -eq 0 ] +then + systemctl start $1 +fi + +exit 0 -- 2.39.5