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