Trouble with freebsd rc system.

Alfred Perlstein alfred at freebsd.org
Sun Sep 14 22:26:22 UTC 2014


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






More information about the freebsd-arch mailing list