Trouble with freebsd rc system.
Ian Lepore
ian at FreeBSD.org
Sun Sep 14 22:41:01 UTC 2014
On Sun, 2014-09-14 at 15:26 -0700, Alfred Perlstein wrote:
> Hey folks,
>
> We are building an appliance based on FreeBSD.
>
> One of the issues we have is that during development we need to know
> which rc script we are in during boot so that if something is hanging or
> otherwise misbehaving we know which script it is.
>
> I am contemplating this hack to /etc/rc.subr's run_rc_command() method:
>
> run_rc_command()
> {
> _return=0
> rc_arg=$1
> if [ -z "$name" ]; then
> err 3 'run_rc_command: $name is not set.'
> fi
>
> # Don't repeat the first argument when passing additional command-
> # line arguments to the command subroutines.
> #
> shift 1
> rc_extra_args="$*"
>
> echo "===> $name $rc_arg"
>
>
> As you can see I've added the call to echo so we know where we are.
>
> This is somewhat suboptimal because we really only want that output
> during startup.
>
> So a few questions:
>
> 1. Is there a way to know we are booting when inside of
> /etc/rc.subr:run_rc_command() ?
> 2. Is there a magic thing I'm missing that does what I want (output
> which /etc/rc.d/ script I am about to run)?
> 3. How would I make a knob to turn off the "echo" so that I can
> contribute this back to FreeBSD without getting into a bikeshed on
> bootup messages.
>
> Kindly please advise.
>
> -Alfred
A bit further down in run_rc_command, in the start) case, is:
check_startmsgs && echo "Starting ${name}."
and that output is controlled with rc_startmsgs=yes, which is the
default.
-- Ian
More information about the freebsd-arch
mailing list