#1136287 initscripts: Dangerous "-e" in rc.local's shebang silently aborts script

#1136287#5
Date:
2026-05-11 14:50:24 UTC
From:
To:
Dear Maintainer,

Since sysvinit 2.88dsf-60 (commit 3e74709f0 in https://salsa.debian.org/debian/sysvinit ),
the default /etc/rc.local file has included the "-e" flag in the shebang:

        #!/bin/sh -e

The semantics is that any failing command in the script *silently* aborts its execution.
As typically one starts many unrelated things for rc.local, this is completely unwarranted.
Indeed, the order may be irrelevant, and hence the failure to start the commands following
the failing one does not carry any added value. In addition, there is no overall "failed to
boot" situation that would bring the issue to the adminbistrator's attention, so there's
an extra "surprise" effect.

Since bullseye, we have systematically had to fix that manually in production machines.
Of course, the file being marked "conffiles" means the change is kept across upgrades;
However for fresh installs, the manual fix is always needed.

Please consider fixing it in the official package.

Thanks in advance,