From: Alexandru Ardelean <ardeleana...@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 <ardeleana...@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 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev