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 <sharpd@cumulusnetworks.com>
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
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
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
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
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
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
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
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
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
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
--- /dev/null
+#!/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