On Tue, Dec 13, 2011 at 2:44 PM, lolilolicon <lolilolicon@gmail.com> wrote:
On Wed, Dec 14, 2011 at 3:48 AM, Tom Gundersen <teg@jklm.no> wrote:
On Tue, Dec 13, 2011 at 8:09 PM, lolilolicon <lolilolicon@gmail.com> wrote:
According to sysctl(8), the -e option is used to "ignore errors about unknown keys", so no "other error" would be hidden by it.
Many reasons for "unknown keys", maybe the module is no longer installed (by mistake), or it failed loading, or, ....
But in case of those failures, one shouldn't expect to look for errors in the sysctl error messages in the first place. Those error messages should be supplementary at best.
It's a good thing if we can report error on misspelled keys, but only if we don't report the same errors when the keys are just unknown due to disabled modules.
I can't imagine how that could be done...
Currently I have IPv6 disabled, so I get in boot messages:
error: "net.ipv6.conf.all.use_tempaddr" is an unknown key error: "net.ipv6.conf.default.use_tempaddr" is an unknown key
To me it makes most sense to disable the sysctl entries if you disable the modules, anything else should give errors.
To me, the sysctl entries are to the modules what configuration files are to e.g. daemons -- you don't comment/rename configs if you disable daemons in rc.conf.
Now if I consistently get these errors, it would be very likely for me to ignore some other real errors, like misspelling:
error: "net.ipv9.conf.default.use_tempaddr" is an unknown key
With your patch this error would be ignored anyway...
Yes, but if in either case it will be ignored, better just not print it :P My point is that if one gets used to the net.ipv6.* key errors, other real errors would more likely be ignored; if instead, we suppress the non-critical unknown key errors, the other real errors will stand out.
BTW, pre arch-sysctl, it used to be `sysctl -q -p &>/dev/null`, which really hides *all* errors;
Yeah, we are slowly moving away from ignoring errors wherever we can.
I can understand the intent.
in contrast, The -e option sounds far more reasonable...
Sure, but it still risks ignoring some real errors, which is worse than being annoying.
I still think in reality -e is pretty safe; I wonder what the original intent for the -e option.
Well, I think I've made my points. Comparing options, I would add the -e to my copy of arch-sysctl, if unfortunately we couldn't agree on this matter.
i don't know how beneficial it is to worry about disabled daemons, or much else related to sysctl ... because imo the whole thing is busted/outdated, even sysctl.d as implemented by systemd. in `/etc/rc.multi`, `arch-sysctl` is called *before* any daemons are started, so anything added to /proc after that will not be affected anyway (eg. any modules loaded by daemons et al). the sad truth is sysctl is not hot-plug friendly at all AFAIK, and only sysfs attributes (/sys) can be [cleanly] modified by udev rules ... i know this because i have a desire to disable bridge firewalling on many of my setups, a /proc/net entry, but the hierarchy doesn't exist until the bridge modules are loaded ... which, unless explicitly requested, will almost certainly happen after sysctl stuff has fired. -- C Anthony