NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/41946: rc.d should honour AB_SILENT



The following reply was made to PR bin/41946; it has been noted by GNATS.

From: Alan Barrett <apb%cequrux.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: bin/41946: rc.d should honour AB_SILENT
Date: Mon, 31 Aug 2009 08:59:44 +0200

 On Thu, 27 Aug 2009, jmcneill%invisible.ca@localhost wrote:
 >      Capture all messages to a log file in /var, and make rc.d twiddle
 >      like the kernel does when booting with AB_SILENT. If any output on
 >      stderr is captured, report that at least one system service reported
 >      an error at startup and to reference the log file for more information.
 
 I am working on this.  My plan is:
 
   1) expose the kernel's boothowto variable through sysctl kern.boothowto
      (done);
   2) teach rc.subr to parse the sysctl output to set several shell
      variables to record which bits are on or off (done);
   3) add a twiddle function to rc.subr (done);
   4) make rc and/or rc.subr DTRT for the remainder of the problem
      (in progress).
 
 The last step is tricky because there may be no writable file
 systems early in the boot, both /var/run and /tmp may be erased by
 rc.d scripts during the boot, and /usr/bin/tee is not available
 early in the boot.  Also, I can't easily keep stdout and stderr
 separate, so I am using the script's exit status (not the presence
 or absence of output on stderr) to detect errors.  I have it mostly
 working for the AB_SILENT case, but not for the non-silent case
 (which needs tee-like functionality).
 
 Here's the tail end of my current /var/run/rc.log:
 
     [/etc/rc.d/autoswc]
     make: cannot open /usr/pkg/share/autoswc/autoswc.mk.
     [/etc/rc.d/asterisk]
     [/etc/rc.d/apache]
     The following scripts returned error status:
        /etc/rc.d/mountcritremote /etc/rc.d/chronyd /etc/rc.d/bacula-sd
     /etc/rc finished at Mon Aug 31 06:21:56 UTC 2009
 
 The things in square brackets appear only in the log file.  The
 normal text appears on the console as well as in the log file in
 normal mode, but in silent mode the console gets a twiddle instead
 of the normal text.  The error summary at the end appears on the
 console even in silent mode.
 
 --apb (Alan Barrett)
 


Home | Main Index | Thread Index | Old Index