Bug#928919: patch: Do not hide errors from initscripts
Dmitry Bogatov
KAction at debian.org
Thu May 16 09:54:31 BST 2019
[2019-05-13 12:58] Thorsten Glaser <t.glaser at tarent.de>
> On Mon, 13 May 2019, Dmitry Bogatov wrote:
>
> > @@ -65,5 +65,3 @@ case "$1" in
> > exit 3
> > ;;
> > esac
> > -
> > -:
>
> I think this is not advisable. What this will do is
> cause the last errorlevel to be returned by the script,
> which may not be an error but simply the result of a
> test command.
Then this initscripts will always fail. Bug to fix. But actually, most
scripts have following form:
case $1 in
start) do_start ;;
stop) do_stop ;;
# [...]
esac
Having trailing ":" would result of ignoring result these "do_*" functions.
It is true, that some of them, unfortunately, do not thread return
value properly (ex: mountall).
This change in no way complete, but just one step in direction when exit
status of initscript is meaningful.
> Initscripts explicitly call the exit built-in utility
> in case of errors and must not use 'set -e', but even
> so, this may break some legit uses.
Not that it is good thing, but I know, that both initscripts and
lsb-base can't be used with "set -e".
What legit uses you are talking about?
> Furthermore, not erroring out seems to be the proper fallback case for
> initscripts because doing otherwise may cause the system to not boot,
> which is the greater evil.
Exit status of initscript does not affect boot process: see "startup()"
from /etc/init.d/rc (no set -e):
startup() {
action=$1
shift
scripts="$@"
for script in $scripts ; do
$debug "$script" $action
done
}
--
Note, that I send and fetch email in batch, once every 24 hours.
If matter is urgent, try https://t.me/kaction
--
More information about the Debian-init-diversity
mailing list