On Sun, Jan 2, 2011 at 1:57 AM, Jilles Tjoelker <jil...@stack.nl> wrote: > On Fri, Dec 31, 2010 at 02:57:17PM -0700, Warner Losh wrote: >> On 12/31/2010 07:43, Jilles Tjoelker wrote: >> > On Thu, Dec 30, 2010 at 06:06:31PM +0000, Pawel Jakub Dawidek wrote: >> >> Author: pjd >> >> Date: Thu Dec 30 18:06:31 2010 >> >> New Revision: 216823 >> >> URL: http://svn.freebsd.org/changeset/base/216823 >> >> Log: >> >> For compatibility with Linux and Solaris add poweroff(8). >> >> It is implemented as a hard link to shutdown(8) and it is equivalent >> >> of: >> >> # shutdown -p now >> > If we go that way, then for consistency reboot(8) and halt(8) should >> > also be equivalent to calling shutdown -r now and shutdown -h now >> > respectively, unless conflicting options are given. Linux has a -f >> > option for what's currently reboot's and halt's default action, and >> > fastboot(8)/fasthalt(8) could also retain the current behaviour. > >> > I would be in favour of this change. >> I'm not sure I'd go this far. I really *LIKE* that halt/reboot is the >> low-level interface that shutdown -r now calls. I'm not sure that >> moving away from this would be a good idea. It cuts out many levels of >> indirection that can be useful in many instances. > > But that's not how it works. After printing all the warnings, > shutdown(8) signals init. Ctrl+Alt+Del also signals init (and that's > nontrivial to change, because it's in the kernel). > > Only if the strange -o option is used does shutdown execute reboot(8) or > halt(8). > > I think the canonical low-level interface should be sending signals to > init. reboot(8) and halt(8) doing things on their own should be banished > to non-default options. (Something should be fixed first so that > /etc/rc.d/mixer doesn't destroy the user's settings from single-user > mode.)
I'd say we've got two different, if related, issues here. One is how to prevent people from foot-shooting and the system from doing unforeseen harm to itself when the multi-user shutdown procedure is triggered while in single-user mode. Init(8) should know which mode the system is currently in, so it can a) refrain from running /etc/rc.shutdown unless /etc/rc ran, and b) expose the current mode via a sysctl writeable by PID 1 only for the benefit of other system components. The other issue is whether it is OK to change the traditional BSD semantics of reboot(8) and halt(8). At first glance, this doesn't seem to be a good idea. However, it might be that, as soon as issue 1 is fixed, the residual difference between shutdown and reboot/halt won't be that important. Moreover, I dare guess that BSD beginners can be confused by the current reboot/halt semantics and so they can be prone to foot-shooting by leaving no chance to a big and slow daemon to stop properly when in multi-user mode. What seems obvious to us old Unix fogeys isn't necessarily intuitive, natural or optimal. See <http://dilbert.com/strips/comic/2010-12-23/>. :-) Yar _______________________________________________ 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"