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

Reply via email to