Didn't want to file a bug on initscripts for this one until I had discussed it first, since I think it's one of those types of things.
The current order for processing sysctl files (with later entries overriding earlier ones) is:
/usr/lib/sysctl.d/*.conf /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /etc/sysctl.conf
I would propose that /etc/sysctl.conf be moved ahead of all of the drop-in directories:
/etc/sysctl.conf /usr/lib/sysctl.d/*.conf /etc/sysctl.d/*.conf /run/sysctl.d/*.conf
My reasoning is that /etc/sysctl.conf is populated out of the box and any package changes to this file will conflict with local modifications later. If I want to enable kernel.sysrq, for example, I would like to create /etc/sysctl.d/local.conf with kernel.sysrq = 1 and leave /etc/sysctl.conf without any modifications.
Anyone have thoughts on this?
EDIT: on second thought, my explanation didn't make any sense whatsoever. See the the post below basically.
Last edited by Gcool (2012-05-04 19:34:27)
/etc/sysctl.conf is for user settings (conflicting upgrades will be writen to /etc/sysctl.conf.pacnew). The current order is correct: applications get their say, then the user, then running applications get to make further changes, and finally the user gets to force any settings he or she wants in /etc/sysctl.conf. /etc/sysctl.conf is supposed to be consistant with the final state of the system.