[RHEL7] What is Order of reading sysctl.d and /etc/sysctl.conf


环境

  • Red Hat Enterprise Linux 7
  • systemd

问题

  • What is Order of reading sysctl.d and /etc/sysctl.conf?

决议

Kernel parameters are interpreted in the order of ​​sysctl.d​​, ​​/etc/sysctl.conf​​.

The configuration files in the ​​sysctl.d​​ directory are sorted in lexicographic order.

Also, regarding to the following priority, file in the directory overrides file with the same name in the another directory.

  1. /etc/sysctl.d
  2. /run/sysctl.d
  3. /usr/local/lib/sysctl.d
  4. /usr/lib/sysctl.d
  5. /lib/sysctl.d/

Here is a quotation from the online manual(​​man sysctl.d​​).

Configuration files are read from directories in /etc/, /run/, and /usr/lib/, in
order of precedence. Each configuration file in these configuration directories
shall be named in the style of filename.conf. Files in /etc/ override files with the
same name in /run/ and /usr/lib/. Files in /run/ override files with the same name
in /usr/lib/.

Packages should install their configuration files in /usr/lib/. Files in /etc/ are
reserved for the local administrator, who may use this logic to override the
configuration files installed by vendor packages. All configuration files are sorted
by their filename in lexicographic order, regardless of which of the directories
they reside in. If multiple files specify the same option, the entry in the file
with the lexicographically latest name will take precedence. It is recommended to
prefix all filenames with a two-digit number and a dash, to simplify the ordering of
the files.