Date: Sun, 14 Sep 2014 22:08:16 -0400 From: Eric van Gyzen <eric@vangyzen.net> To: Alfred Perlstein <alfred@freebsd.org> Cc: arch@freebsd.org, Ian Lepore <ian@FreeBSD.org> Subject: Re: Trouble with freebsd rc system. Message-ID: <9B16D77C-0FD9-4A7B-AA13-009D0FC3A511@vangyzen.net> In-Reply-To: <54161C50.3000507@freebsd.org> References: <54161633.60207@freebsd.org> <1410734453.66615.2.camel@revolution.hippie.lan> <54161C50.3000507@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sep 14, 2014, at 6:53 PM, Alfred Perlstein <alfred@freebsd.org> = wrote: >=20 > On 9/14/14, 3:40 PM, Ian Lepore wrote: >> On Sun, 2014-09-14 at 15:26 -0700, Alfred Perlstein wrote: >>> Hey folks, >>>=20 >>> We are building an appliance based on FreeBSD. >>>=20 >>> 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. >>>=20 >>> I am contemplating this hack to /etc/rc.subr's run_rc_command() = method: >>>=20 >>> run_rc_command() >>> { >>> _return=3D0 >>> rc_arg=3D$1 >>> if [ -z "$name" ]; then >>> err 3 'run_rc_command: $name is not set.' >>> fi >>>=20 >>> # Don't repeat the first argument when passing additional = command- >>> # line arguments to the command subroutines. >>> # >>> shift 1 >>> rc_extra_args=3D"$*" >>>=20 >>> echo "=3D=3D=3D> $name $rc_arg" >>>=20 >>>=20 >>> As you can see I've added the call to echo so we know where we are. >>>=20 >>> This is somewhat suboptimal because we really only want that output >>> during startup. >>>=20 >>> So a few questions: >>>=20 >>> 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. >>>=20 >>> Kindly please advise. >>>=20 >>> -Alfred >> A bit further down in run_rc_command, in the start) case, is: >>=20 >> check_startmsgs && echo "Starting ${name}." >>=20 >> and that output is controlled with rc_startmsgs=3Dyes, which is the >> default. >>=20 >> -- Ian >>=20 >>=20 >>=20 > 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. run_rc_script() sets up a signal hander for SIGINFO, so you can type = Ctrl-T to see which script is currently running. Eric=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B16D77C-0FD9-4A7B-AA13-009D0FC3A511>