Hi. 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. Reco