Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Oct 2010 11:02:01 -0700
From:      Garrett Cooper <gcooper@FreeBSD.org>
To:        Devin Teske <dteske@vicor.com>
Cc:        Brandon Gooch <jamesbrandongooch@gmail.com>, freebsd-hackers@freebsd.org
Subject:   Re: sysrc -- a sysctl(8)-like utility for managing /etc/rc.conf et. al.
Message-ID:  <AANLkTik8Mg6YXzG0CzH0NNOdtUZ865=GbY56Wo-cCq1u@mail.gmail.com>
In-Reply-To: <0206CB74-6E83-4762-B26D-F95E024C90F0@vicor.com>
References:  <1286397912.27308.40.camel@localhost.localdomain> <AANLkTikoohMo5ng-RM3tctTH__P6cqhQpm=FPhSE9mMg@mail.gmail.com> <51B4504F-5AA4-47C5-BF23-FA51DE5BC8C8@vicor.com> <4CAD513F.3010903@DataIX.net> <D5D9B585-96DA-4BD0-899D-A7BFFC0C540C@vicor.com> <4CAD7563.1070706@DataIX.net> <4CAD7CA1.4050202@freebsd.org> <AANLkTim7QcAPSJHt9D-P3XggO5dFgHGGVSzwM=a3Ez5E@mail.gmail.com> <0206CB74-6E83-4762-B26D-F95E024C90F0@vicor.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Oct 9, 2010 at 10:36 AM, Devin Teske <dteske@vicor.com> wrote:
>
> On Oct 9, 2010, at 10:03 AM, Garrett Cooper wrote:
>
>> On Thu, Oct 7, 2010 at 12:54 AM, Julian Elischer <julian@freebsd.org> wr=
ote:
>>> =A0On 10/7/10 12:23 AM, jhell wrote:
>>>>
>>>> Alright thank you for your explanation. I do not normally see this usa=
ge
>>>> and this just sort of stood out at me and I did not want to assume wha=
t
>>>> you were trying to accomplish, without asking.
>>>
>>> three useage cases come to mind immediately.
>>>
>>> 1/ use within other scripts..
>>> =A0instead of the dozens of homegrown solutions people have written for=
 puting
>>> something
>>> into /etc/rc.conf =A0one can use this.
>>>
>>> 2/ what is the value of X on machines a,b,c
>>> =A0foreach machine in a b c
>>> =A0do
>>> =A0 =A0 =A0ssh $machine sysrc X
>>> =A0done
>>>
>>> =A0 =A0you may well say "you could have used grep" bu tgrep doesn't giv=
e the
>>> default value vie the
>>> =A0 hierachy of .rc files.
>>> 2A is of course to correc teh values found to be wrong with (2)
>>>
>>> 3/ on a really small system, without an editor this may do a cleaner jo=
b
>>> than the usual
>>> =A0"grep -v X /etc/rc.conf >/tmp/x;echo X >> /tmp/x; mv /tmp/x /etc/rc.=
conf"
>>
>> =A0 =A0I was going to say...
>>
>> 3A On a system where you're logged in via singleuser, sometimes
>> terminal settings don't work correctly with editors (these days it's
>> mostly because /usr isn't available so it can't load ncurses apps,
>> some libs, termcap, etc). That would be a lifesaver in this case.
>
> I hadn't realized that. That's stupendous!
>
> Though I do believe that `/rescue/vi' exists these days as a statically-l=
inked binary (built using crunchgen(1) via `rescue/rescue/Makefile' in the =
FreeBSD source tree).

Yeah, but unfortunately if some filesystems aren't mounted [ /usr,
/var, etc ] back in the 5.x days (that's when I got into FreeBSD)
[until recently after ed@'s work on syscons and libteken?], most
utilities like vi and ee are braindead when it comes to printing
characters on the screen. I've screwed up and forgot to put down nfs
shares as noauto a few times, and also tinkered around with ata <->
ahci within the past couple months, so until I learned enough sed to
comment out lines in fstab, booting up my system didn't work out too
well :/.

>> =A0 =A0But then I realized that this command probably would live in
>> /usr/sbin and would probably need other apps in /usr/bin // /usr/sbin
>> to run this command :).
>
> I envisioned it living in `/sbin' and it's actually free of dependencies =
to external executables. If you execute it with the "-d" option ('d' for 'd=
ependencies'), you can see that it uses only shell internals. The only thin=
g this script truly depends on is `/bin/sh'. So it sounds like it would fit=
 the ability of working within single-user mode quite well (remember, I dev=
eloped it for embedded systems -- where things like grep/sed/awk may even b=
e missing).

Guess it goes to show that I should review the code :).

Thanks!
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTik8Mg6YXzG0CzH0NNOdtUZ865=GbY56Wo-cCq1u>