base-files: use restart if no reload hook for service

This was also working before, with a slightly
different semantic.

[ Original semantic ]
If no reload hooks was implemented, the default one would
kick in, it would return fail, and restart would happen.

This would happen also in the case where a reload hook
would be implemented, it would fail, and it would restart
the service.

[ New semantic ]
The default reload hook calls restart.
Services can implement their own reload.

If reload fails, then the '/etc/init.d/<service> reload'
would return a non-zero code, and the caller can choose
a way to handle this.

Signed-off-by: Alexandru Ardelean <>
Alexandru Ardelean 7 years ago committed by Felix Fietkau
parent a124f0739b
commit 6713694fe4

@ -17,7 +17,7 @@ stop() {
reload() {
return 1
restart() {
@ -68,7 +68,7 @@ Available commands:
start Start the service
stop Stop the service
restart Restart the service
reload Reload configuration files (or restart if that fails)
reload Reload configuration files (or restart if service does not implement reload)
enable Enable service autostart
disable Disable service autostart
@ -130,7 +130,7 @@ ${INIT_TRACE:+set -x}
if eval "type reload_service" 2>/dev/null >/dev/null; then
reload_service "$@"
@ -141,5 +141,4 @@ ${INIT_TRACE:+set -x}
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 "$@"