RFC: sysctl -f filename
Garrett Cooper
yanegomi at gmail.com
Sat Dec 1 22:10:22 UTC 2012
On Sat, Dec 1, 2012 at 8:50 AM, Hiroki Sato <hrs at freebsd.org> wrote:
> Hi,
>
> I would like comments about the attached patch for sysctl(8) to add a
> new option "-f filename". It supports reading of a file with
> key=value lines.
>
> As you probably know, we already have /etc/sysctl.conf and it is
> processed by rc.d/sysctl shell script in a line-by-line basis. The
> problem I want to fix is a confusing syntax of /etc/sysctl.conf. The
> file supports a typical configuration file syntax but problematic in
> some cases. For example:
>
> kern.coredump=1
>
> works well in /etc/sysctl.conf, but
>
> kern.coredump="1"
>
> does not work. Similarly, it is difficult to use whitespaces and "#"
> in the value:
>
> OK: kern.domainname=domain\ name\ with\ spaces
> NG: kern.domainname="domain name with spaces"
> NG: kern.domainname=domain\ name\ including\ #\ character
> NG: kern.domainname=domain\ name\ including\ \#\ character
>
> The attached patch solves them, and in addition it displays an error
> message with a line number if there is something wrong in the file
> like this:
>
> % cat -n /etc/sysctl.conf
> ...
> 10 kern.coredump=1
> 11 kern.coredump2=1
> ...
>
> % /etc/rc.d/sysctl start
> sysctl: kern.coredump at line 10: Operation not permitted
> sysctl: unknown oid 'kern.coredump2' at line 11
>
> # /etc/rc.d/sysctl start
> kern.coredump: 1 -> 1
> sysctl: unknown oid 'kern.coredump2' at line 11
>
> Any comments are welcome.
Why change the tool when we can change the rc script to do the
right thing? I have a patch I'm working on to resolve this (you hit an
itch I've been meaning to scratch for a little while).
Thanks!
-Garrett
More information about the freebsd-current
mailing list