Date: Thu, 17 Sep 2009 03:42:29 -0700 From: Doug Barton <dougb@FreeBSD.org> To: Ian Smith <smithi@nimnet.asn.au> Cc: freebsd-rc@freebsd.org, Oliver Fromme <olli@lurza.secnetix.de>, Dimitry Andric <dimitry@andric.com>, freebsd-stable@freebsd.org, Cezary Morga <cm@therek.net> Subject: Re: 8.0 rc.d scripts less verbose? Message-ID: <4AB21295.5080103@FreeBSD.org> In-Reply-To: <20090917183525.O73400@sola.nimnet.asn.au> References: <op.u0aywxkp8527sy@82-170-177-25.ip.telfort.nl> <4AAFED75.4020502@andric.com> <4AB099BB.9040603@therek.net> <4AB17CB9.3040704@FreeBSD.org> <20090917183525.O73400@sola.nimnet.asn.au>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------090801000801060201050607 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Please follow up to this post on the freebsd-rc@freebsd.org list, thanks. See below for my comments. Ian Smith wrote: > On Wed, 16 Sep 2009, Doug Barton wrote: >> Cezary Morga wrote: >>> Dimitry Andric pisze: >>>> Index: etc/rc.subr >>>> =================================================================== >>>> --- etc/rc.subr (revision 196888) +++ etc/rc.subr >>>> (working copy) @@ -680,7 +680,7 @@ run_rc_command() >>>> >>>> # setup the full command to run # - [ -z >>>> "${rc_quiet}" ] && echo "Starting ${name}." + echo >>>> "Starting ${name}." if [ -n "$_chroot" ]; then _doit="\ >>>> ${_nice:+nice -n $_nice }\ >>> >>> Wouldn't it be easier to set rc_quiet to zero-length value, >>> like rc_quiet=""? >> >> That actually would give off too much information because >> rc_quiet suppresses error messages about scripts that don't >> currently have _enable set to anything useful. That's arguably a >> bug, but it's a bug that we've come to depend on. >> >> The attached patch adds a knob you can set in rc.conf to see >> "Starting foo" messages again. If people find this useful I'll be >> glad to commit it. I'm also open to suggestions for a better >> name. > >> From your patch: > - [ -z "${rc_quiet}" ] && echo "Starting ${name}." > + [ -z "${rc_quiet}" -o -n "${rc_starting}" ] && echo "Starting ${name}." > > Presumably this variable would go in /etc/defaults/rc.conf .. seems > that all the other rc.conf binary choices are either set "YES" or > "NO" rather than something or empty, so perhaps more consistent > with that might be: > > [ -z "${rc_quiet}" -o "${rc_starting}" = "YES" ] && echo "Starting > ${name}." No, we don't test boolean flags for specific values. I've attached a proper patch to this message. > As for name, not fussed, but maybe rc_startmsgs maybe more > indicative? That sounds fine to me, if anyone else has a better idea follow up on the freebsd-rc list. > Also, I agree with Oliver; YES should probably be the default > (POLA) so folks annoyed by 'too much information' in console.log > can disable it. This late in the release cycle I'm comfortable adding a knob, but I'm not comfortable toggling the default. If there is consensus on the freebsd-rc list to make the default "yes" then I will go with that consensus. Dimitry Andric wrote: > On 2009-09-17 09:17, Oliver Fromme wrote: >> My feeling is that hiding all of the "starting" messages is a >> regression that needs to be fixed. I cannot think of a good >> reason why they should be hidden, but there are certainly good >> reasons to display them. > > The commit that introduced this, r179946, has this log message: > > ==== Move the diagnostic output when the rc.subr(8) glue > automatically starts a > service behind $rc_quiet. Instead, output a warning if the > pre-command routine or the command itself failed. Arguably, it's > more useful to know when > a command failed to start than it is to have an endless list of > "Starting ...." lines[1]. > > [1] - This change actually helped me to discover a bug in > rc.d/{lockd,statd} > (fixed in r179941) that used to fail silently before. ==== > > It is really a matter of taste, I guess. There is something to be > said for eliminating verbosity, in order to make real errors more > visible. > > On the other hand, if one of your startup rc scripts hangs (for > whatever reason), it is nice to have an approximate idea which one > it is. :) I tend to agree that the current default is a little too un-verbose. If there is support for adding this knob I'll follow up with re@ to see about getting it into 8.0-release, although I'm not sure how they'll feel about a change like this so late in the cycle. Doug -- This .signature sanitized for your protection --------------090801000801060201050607 Content-Type: text/plain; name="rc-startmsgs.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rc-startmsgs.diff" Index: share/man/man5/rc.conf.5 =================================================================== --- share/man/man5/rc.conf.5 (revision 197259) +++ share/man/man5/rc.conf.5 (working copy) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 2, 2009 +.Dd September 17, 2009 .Dt RC.CONF 5 .Os .Sh NAME @@ -95,6 +95,13 @@ Informational messages are displayed when a condition that is not serious enough to warrant a warning or an error occurs. +.It Va rc_startmsgs +.Pq Vt bool +If set to +.Dq Li YES , +show +.Dq Starting foo: +when faststart is used (e.g., at boot time). .It Va early_late_divider .Pq Vt str The name of the script that should be used as the Index: etc/defaults/rc.conf =================================================================== --- etc/defaults/rc.conf (revision 197259) +++ etc/defaults/rc.conf (working copy) @@ -23,6 +23,7 @@ rc_debug="NO" # Set to YES to enable debugging output from rc.d rc_info="NO" # Enables display of informational messages at boot. +rc_startmsgs="NO" # Show "Starting foo:" messages at boot rcshutdown_timeout="30" # Seconds to wait before terminating rc.shutdown early_late_divider="FILESYSTEMS" # Script that separates early/late # stages of the boot process. Make sure you know Index: etc/rc.subr =================================================================== --- etc/rc.subr (revision 197259) +++ etc/rc.subr (working copy) @@ -708,7 +708,13 @@ # setup the full command to run # - [ -z "${rc_quiet}" ] && echo "Starting ${name}." + _show_startmsgs=1 + if [ -n "${rc_quiet}" ]; then + if ! checkyesno rc_startmsgs; then + unset _show_startmsgs + fi + fi + [ -n "$_show_startmsgs" ] && echo "Starting ${name}." if [ -n "$_chroot" ]; then _doit="\ ${_nice:+nice -n $_nice }\ --------------090801000801060201050607--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AB21295.5080103>