Date: Sat, 1 Jan 2011 01:34:54 +0100 From: Jilles Tjoelker <jilles@stack.nl> To: Erik Trulsson <ertr1013@student.uu.se> Cc: svn-src-head@freebsd.org, Alexander Best <arundel@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek <pjd@FreeBSD.org> Subject: Re: svn commit: r216823 - head/sbin/shutdown Message-ID: <20110101003453.GA61932@stack.nl> In-Reply-To: <20101231223114.GA26424@owl.midgard.homeip.net> References: <201012301806.oBUI6VcW046731@svn.freebsd.org> <20101231144308.GA55052@stack.nl> <20101231165552.GA24854@owl.midgard.homeip.net> <20101231190058.GA79467@freebsd.org> <20101231223114.GA26424@owl.midgard.homeip.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110101003453.GA61932>