Trouble with freebsd rc system.

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


On 9/14/14, 3:40 PM, Ian Lepore wrote:
> 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
>
>
>
I see that, however I've often been hung up in a rc script and that 
message is not displayed... let me check, maybe we have dumb defaults 
somehow.

-Alfred


More information about the freebsd-arch mailing list