From bc58bd99e81b72f8061473eec5d3454b3504b163 Mon Sep 17 00:00:00 2001 From: Tobias Schwarz Date: Tue, 13 Jul 2021 20:08:14 +0200 Subject: [PATCH] olsrd: improve respawn settings 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 --- olsrd/files/olsrd.config | 4 ++++ olsrd/files/olsrd4.init | 12 ++++++++++-- olsrd/files/olsrd6.config | 4 ++++ olsrd/files/olsrd6.init | 10 +++++++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/olsrd/files/olsrd.config b/olsrd/files/olsrd.config index 15ea80a..25812fa 100644 --- a/olsrd/files/olsrd.config +++ b/olsrd/files/olsrd.config @@ -22,3 +22,7 @@ config LoadPlugin config Interface list interface 'wlan' + +config procd general + option respawn_timeout '15' + option respawn_retry '0' diff --git a/olsrd/files/olsrd4.init b/olsrd/files/olsrd4.init index ceb553a..03836eb 100644 --- a/olsrd/files/olsrd4.init +++ b/olsrd/files/olsrd4.init @@ -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 diff --git a/olsrd/files/olsrd6.config b/olsrd/files/olsrd6.config index 7a03f28..57ae698 100644 --- a/olsrd/files/olsrd6.config +++ b/olsrd/files/olsrd6.config @@ -9,3 +9,7 @@ config LoadPlugin config Interface list interface 'wlan' + +config procd general + option respawn_timeout '15' + option respawn_retry '0' diff --git a/olsrd/files/olsrd6.init b/olsrd/files/olsrd6.init index 6d0b59b..77b68e8 100644 --- a/olsrd/files/olsrd6.init +++ b/olsrd/files/olsrd6.init @@ -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