| <?xml version="1.0"?> |
| <!DOCTYPE refsection PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" |
| "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
| |
| <!-- |
| SPDX-License-Identifier: LGPL-2.1+ |
| Copyright © 2014 Josh Triplett |
| --> |
| |
| <refsection> |
| <refsection id='confd'> |
| <title>Configuration Directories and Precedence</title> |
| |
| <para>Configuration files are read from directories in <filename>/etc/</filename>, <filename>/run/</filename>, |
| <filename>/usr/local/lib/</filename>, and <filename>/usr/lib/</filename>, in order of precedence. Each |
| configuration file in these configuration directories shall be named in the style of |
| <filename><replaceable>filename</replaceable>.conf</filename>. Files in <filename>/etc/</filename> override files |
| with the same name in <filename>/run/</filename>, <filename>/usr/local/lib/</filename>, and |
| <filename>/usr/lib/</filename>. Files in <filename>/run/</filename> override files with the same name under |
| <filename>/usr/</filename>.</para> |
| |
| <para>Packages should install their configuration files in <filename>/usr/lib/</filename> (distribution packages) |
| or <filename>/usr/local/lib/</filename> (local installs). Files in <filename>/etc/</filename> 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.</para> |
| |
| <para>If the administrator wants to disable a configuration file supplied by |
| the vendor, the recommended way is to place a symlink to |
| <filename>/dev/null</filename> in the configuration directory in |
| <filename>/etc/</filename>, with the same filename as the vendor |
| configuration file. If the vendor configuration file is included in |
| the initrd image, the image has to be regenerated.</para> |
| </refsection> |
| |
| <refsection id='main-conf'> |
| <title>Configuration Directories and Precedence</title> |
| |
| <para>The default configuration is defined during compilation, so a |
| configuration file is only needed when it is necessary to deviate |
| from those defaults. By default, the configuration file in |
| <filename>/etc/systemd/</filename> contains commented out entries |
| showing the defaults as a guide to the administrator. This file |
| can be edited to create local overrides. |
| </para> |
| |
| <para>When packages need to customize the configuration, they can |
| install configuration snippets in |
| <filename>/usr/lib/systemd/*.conf.d/</filename> or |
| <filename>/usr/local/lib/systemd/*.conf.d/</filename>. Files in |
| <filename>/etc/</filename> are reserved for the local |
| administrator, who may use this logic to override the |
| configuration files installed by vendor packages. The main |
| configuration file is read before any of the configuration |
| directories, and has the lowest precedence; entries in a file in |
| any configuration directory override entries in the single |
| configuration file. Files in the <filename>*.conf.d/</filename> |
| configuration subdirectories are sorted by their filename in lexicographic |
| order, regardless of which of the subdirectories they reside in. When |
| multiple files specify the same option, for options which accept just a |
| single value, the entry in the file with the lexicographically latest name |
| takes precedence. For options which accept a list of values, entries are |
| collected as they occur in files sorted lexicographically. It is recommended |
| to prefix all filenames in those subdirectories with a two-digit number and |
| a dash, to simplify the ordering of the files.</para> |
| |
| <para>To disable a configuration file supplied by the vendor, the |
| recommended way is to place a symlink to |
| <filename>/dev/null</filename> in the configuration directory in |
| <filename>/etc/</filename>, with the same filename as the vendor |
| configuration file.</para> |
| </refsection> |
| </refsection> |