Web lists-archives.com

Re: reboot stuff doesn't start


On Tue, May 28, 2019 at 10:53:04AM -0400, Greg Wooledge wrote:
> On Mon, May 27, 2019 at 12:11:29PM +0300, Reco wrote:
> > On Sun, May 26, 2019 at 05:45:56PM -0400, Gene Heskett wrote:
> > > root@coyote:GenesAmandaHelper-0.61$ cat /etc/rc.local
> > > #!/bin/sh -e
> > 
> > Any execution error will terminate the script.
> The blame is on Debian for that one.  That's what Debian put in the
> default /etc/rc.local file in every release up to jessie.  (They "fixed"
> this in stretch by not having a default /etc/rc.local file at all, but
> if you upgraded to stretch, you still have the old default file.)

I disagree. /etc/rc.local is a part of init (whenever it's sysvinit or
systemd or upstart), being run as root. If something goes wrong there -
it should fail as verbose as possible (yep, journald is worthless in
this regard). Helps with diagnostics and all that.

> Debian's policy for developers is to use -e with all shell scripts
> (horrible!),

On the contrary. Helps with error catching, limits the damage (all
package scripts are executed as root), promotes at least some kind of
code quality.
Side effects may include non-removing packages (failed prerm script), of
course, but they have bugs.debian.org for these cases.

> but inflicting that same policy on end users is not wise.

End users can remove that '-e' flag if they believe it's problematic.
rc.local is a simple shell script, open to all kinds of abuse including
this one.