On Fri, Dec 31, 2010 at 11:31:14PM +0100, Erik Trulsson wrote: > On Fri, Dec 31, 2010 at 07:00:58PM +0000, Alexander Best wrote: > > another thought: running 'reboot' instead of 'shutdown -r now' *can* cause > > harm to the system, because an important rc.shutdown script wasn't executed. > > however running 'shutdown -r now' in single-user mode e.g. will cause a few > > sterr warnings; however it *cannot* cause any harm.
> Oh, yes, it can! (And I have been burnt by it once, after which I got > very careful about not using 'shutdown -r now' from single user mode.) > Take a look at /etc/rc.d/mixer > At shutdown it saves the current state of the soundcard mixer values > into a file and at start it restores the mixer values from that file. > If you boot into single user mode the start function will of course not > be executed leaving the mixer values at their default values. If you > then use 'shutdown' these default values are what will be saved, > overwriting whatever values had been saved before, while if you had > instead had used 'reboot' the old saved values would have been left > untouched. > If you never change the mixer values from their defaukt you won't notice > anything, but otherwise it might take a while to figure out why the > sound is at the 'wrong' volume. > This is one example I have found where bad things can happen if you use > 'shutdown' when you should have used 'reboot'. I am fairly sure that > there are other instances that I just haven't run into (yet.) Yes, but I consider this a bug in either init or the rc system. The problem already exists if shutdown is used from single-user. Ctrl+Alt+Del also signals init, causing proper shutdown from multi-user but mixer value loss from single-user. If it is a bug in init, init should not run rc.shutdown when it has not run any /etc/rc things, in the assumption that rc.shutdown shuts down the things that /etc/rc has started. Furthermore, this seems reasonable because rc.shutdown is also run when the system goes from multi-user to single-user; it seems strange to run it another time when the system goes down from single-user. If it is a bug in /etc/rc.d/mixer, /etc/rc.d/mixer should somehow track if it has been started, and ignore any stops if not. This seems less general than changing init. If it is a bug in /etc/rc, it should do the above tracking somehow for all scripts. -- Jilles Tjoelker _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"