[LEDE-DEV] [PATCH 2/3][RFC] base-files: add option to rc.common to disable default reload behavior

Alexandru Ardelean ardeleanalex at gmail.com
Mon Mar 20 07:08:54 PDT 2017


From: Alexandru Ardelean <ardeleanalex at gmail.com>

Traditionally if a reload script fails, it will fallback to restart.

That seems to be the default behavior in case no reload
handler has been specified, and `reload` will return 1.

That also has the disadvantage of masking reload errors
from `/etc/init.d/<service> reload`.

Still, it's a pretty old behavior, and in most cases
it should be fine.

For other cases, the `RESTART_ON_RELOAD_ERR=0` can
be specified to override this.

Not sure about the correctness of this approach,
so this patch is RFC.

Signed-off-by: Alexandru Ardelean <ardeleanalex at gmail.com>
---
 package/base-files/files/etc/rc.common | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common
index 95cf956..a893b09 100755
--- a/package/base-files/files/etc/rc.common
+++ b/package/base-files/files/etc/rc.common
@@ -139,7 +139,13 @@ ${INIT_TRACE:+set -x}
 	}
 }
 
+RESTART_ON_RELOAD_ERR=${RESTART_ON_RELOAD_ERR:-1}
+
 ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}"
 list_contains ALL_COMMANDS "$action" || action=help
-[ "$action" = "reload" ] && action='eval reload "$@" || restart "$@" && :'
+[ "$action" = "reload" ] && {
+	if [ "$RESTART_ON_RELOAD_ERR" == "1" ] ; then
+		action='eval reload "$@" || restart "$@" && :'
+	fi
+}
 $action "$@"
-- 
2.7.4




More information about the Lede-dev mailing list