Date: Sat, 01 Dec 2012 20:22:46 -0800 From: Alfred Perlstein <bright@mu.org> To: Hiroki Sato <hrs@FreeBSD.org> Cc: current@FreeBSD.org Subject: Re: RFC: sysctl -f filename Message-ID: <50BAD796.5050507@mu.org> In-Reply-To: <20121202.015048.1122480556487090170.hrs@allbsd.org> References: <20121202.015048.1122480556487090170.hrs@allbsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Does sysctl(8) really need to learn to parse files? Can't rc.d/sysctl be modified to do the fixup? This regex seems to work: val=`echo $val | sed -e "s@ *\"\(.*\)\" *@\1@" -e "s@ *'\(.*\)' *@\1@"` -Alfred On 12/1/12 8:50 AM, Hiroki Sato 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. > > -- Hiroki
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50BAD796.5050507>