[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