olsrd: improve respawn settings
authorTobias Schwarz <info@tobias-schwarz.com>
Tue, 13 Jul 2021 18:08:14 +0000 (20:08 +0200)
committerPolynomdivision <vincent@systemli.org>
Sun, 1 Aug 2021 09:28:27 +0000 (11:28 +0200)
This increases the amount of seconds to wait before a service restart
attempt from 5 to 15 seconds and allows unlimited retries. Olsrd
sometimes crashes together with a network interface and 5 seconds can
be too short to bring back up a crashed network interface, which is
required for olsrd to restart. It also adds the ability to configure
the wait time (respawn_timeout) and the number of retries
(respawn_retry).

Signed-off-by: Tobias Schwarz <info@tobias-schwarz.com>
(cherry picked from commit bc58bd99e81b72f8061473eec5d3454b3504b163)

olsrd/files/olsrd.config
olsrd/files/olsrd4.init
olsrd/files/olsrd6.config
olsrd/files/olsrd6.init

index 15ea80a41867e7e5a3f3c4c0de7a3c4676bddd4c..25812fa4ffde9fecb08a3094fc875100750c1d6c 100644 (file)
@@ -22,3 +22,7 @@ config LoadPlugin
 
 config Interface
        list interface 'wlan'
+
+config procd general
+       option respawn_timeout '15'
+       option respawn_retry '0'
index ceb553a3ee885e6059510047f36d29430d194bdd..03836eb3462c5a2cdcae3d022ba74dec6c4f11a6 100644 (file)
@@ -24,15 +24,23 @@ boot()
 
 start_service() {
        olsrd_generate_config $OLSRD
-       
+
        procd_open_instance
+
+       config_load olsrd
+       local _respawn_timeout
+       local _respawn_retry
+       
+       config_get _respawn_timeout general respawn_timeout     
+       config_get _respawn_retry general respawn_retry         
+       
        procd_set_param command "$BIN"
        procd_append_param command -f ${CONF}
        procd_append_param command -nofork
        procd_append_param command -pidfile ${PID}
 
        # restart if olsrd dies
-       procd_set_param respawn
+       procd_set_param respawn 3600 $_respawn_timeout $_respawn_retry
 
        # automatically restart olsrd if generated cfg has changed
        procd_set_param file $CONF
index 7a03f28de70f15a183a5910661ea3fa7240393d7..57ae69813094076be59434514d5692fabeee64bf 100644 (file)
@@ -9,3 +9,7 @@ config LoadPlugin
 
 config Interface
        list interface 'wlan'
+
+config procd general
+       option respawn_timeout '15'
+       option respawn_retry '0'
index 6d0b59b5ae5efec8b04440be25b653812be71f72..77b68e80b93b17146bf2508e844256e308a8e249 100644 (file)
@@ -26,13 +26,21 @@ start_service() {
        olsrd_generate_config $OLSRD
 
        procd_open_instance
+
+       config_load olsrd6
+       local _respawn_timeout
+       local _respawn_retry
+
+       config_get _respawn_timeout general respawn_timeout     
+       config_get _respawn_retry general respawn_retry                 
+
        procd_set_param command "$BIN"
        procd_append_param command -f ${CONF}
        procd_append_param command -nofork
        procd_append_param command -pidfile ${PID}
 
        # restart if olsrd dies
-       procd_set_param respawn
+       procd_set_param respawn 3600 $_respawn_timeout $_respawn_retry
 
        # automatically restart olsrd if generated cfg has changed
        procd_set_param file $CONF