chiark / gitweb /
man: systemd.service(5): add some simple examples
[elogind.git] / man / sysctl.d.xml
1 <?xml version="1.0"?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
3 <!--
4   This file is part of systemd.
5
6   Copyright 2011 Lennart Poettering
7
8   systemd is free software; you can redistribute it and/or modify it
9   under the terms of the GNU Lesser General Public License as published by
10   the Free Software Foundation; either version 2.1 of the License, or
11   (at your option) any later version.
12
13   systemd is distributed in the hope that it will be useful, but
14   WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   Lesser General Public License for more details.
17
18   You should have received a copy of the GNU Lesser General Public License
19   along with systemd; If not, see <http://www.gnu.org/licenses/>.
20 -->
21 <refentry id="sysctl.d"
22           xmlns:xi="http://www.w3.org/2001/XInclude">
23
24         <refentryinfo>
25                 <title>sysctl.d</title>
26                 <productname>systemd</productname>
27
28                 <authorgroup>
29                         <author>
30                                 <contrib>Developer</contrib>
31                                 <firstname>Lennart</firstname>
32                                 <surname>Poettering</surname>
33                                 <email>lennart@poettering.net</email>
34                         </author>
35                 </authorgroup>
36         </refentryinfo>
37
38         <refmeta>
39                 <refentrytitle>sysctl.d</refentrytitle>
40                 <manvolnum>5</manvolnum>
41         </refmeta>
42
43         <refnamediv>
44                 <refname>sysctl.d</refname>
45                 <refpurpose>Configure kernel parameters at boot</refpurpose>
46         </refnamediv>
47
48         <refsynopsisdiv>
49                 <para><filename>/etc/sysctl.d/*.conf</filename></para>
50                 <para><filename>/run/sysctl.d/*.conf</filename></para>
51                 <para><filename>/usr/lib/sysctl.d/*.conf</filename></para>
52         </refsynopsisdiv>
53
54         <refsect1>
55                 <title>Description</title>
56
57                 <para>At boot,
58                 <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
59                 reads configuration files from the above directories
60                 to configure
61                 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
62                 kernel parameters.</para>
63         </refsect1>
64
65         <refsect1>
66                 <title>Configuration Format</title>
67
68                 <para>The configuration files contain a list of
69                 variable assignments, separated by newlines. Empty
70                 lines and lines whose first non-whitespace character
71                 is <literal>#</literal> or <literal>;</literal> are
72                 ignored.</para>
73
74                 <para>Note that either <literal>/</literal> or
75                 <literal>.</literal> may be used as separators within
76                 sysctl variable names. If the first separator is a
77                 slash, remaining slashes and dots are left intact. If
78                 the first separator is a dot, dots and slashes are
79                 interchanged. <literal>kernel.domainname=foo</literal>
80                 and <literal>kernel/domainname=foo</literal> are
81                 equivalent and will cause <literal>foo</literal> to
82                 be written to
83                 <filename>/proc/sys/kernel/domainname</filename>.
84                 Either
85                 <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
86                 or
87                 <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
88                 may be used to refer to
89                 <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
90                 </para>
91
92                 <para>The settings configured with
93                 <filename>sysctl.d</filename> files will be applied
94                 early on boot. The network interface-specific options
95                 will also be applied individually for each network
96                 interface as it shows up in the system. (More
97                 specifically,
98                 <filename>net.ipv4.conf.*</filename>,
99                 <filename>net.ipv6.conf.*</filename>,
100                 <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>).</para>
101
102                 <para>Many sysctl parameters only become available
103                 when certain kernel modules are loaded. Modules are
104                 usually loaded on demand, e.g. when certain hardware
105                 is plugged in or network brought up. This means that
106                 <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> which runs
107                 during early boot will not configure such parameters
108                 if they become available after it has run. To
109                 set such parameters, it is recommended to add
110                 an <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> rule to set those parameters when they become
111                 available. Alternatively, a slightly simpler and
112                 less efficient option is to add the module to
113                 <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, causing it to be loaded statically
114                 before sysctl settings are applied (see
115                 example below).</para>
116         </refsect1>
117
118         <xi:include href="standard-conf.xml" xpointer="confd" />
119
120         <refsect1>
121                 <title>Examples</title>
122                 <example>
123                         <title>Set kernel YP domain name</title>
124                         <para><filename>/etc/sysctl.d/domain-name.conf</filename>:
125                         </para>
126
127                         <programlisting>kernel.domainname=example.com</programlisting>
128                 </example>
129
130                 <example>
131                         <title>Disable packet filter on bridged packets (method one)</title>
132                         <para><filename>/etc/udev/rules.d/99-bridge.rules</filename>:
133                         </para>
134
135                         <programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/net/bridge"
136 </programlisting>
137
138                         <para><filename>/etc/sysctl.d/bridge.conf</filename>:
139                         </para>
140
141                         <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
142 net.bridge.bridge-nf-call-iptables = 0
143 net.bridge.bridge-nf-call-arptables = 0
144 </programlisting>
145                 </example>
146
147                 <example>
148                         <title>Disable packet filter on bridged packets (method two)</title>
149                         <para><filename>/etc/modules-load.d/bridge.conf</filename>:
150                         </para>
151
152                         <programlisting>bridge</programlisting>
153
154                         <para><filename>/etc/sysctl.d/bridge.conf</filename>:
155                         </para>
156
157                         <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
158 net.bridge.bridge-nf-call-iptables = 0
159 net.bridge.bridge-nf-call-arptables = 0
160 </programlisting>
161                 </example>
162         </refsect1>
163
164         <refsect1>
165                 <title>See Also</title>
166                 <para>
167                         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
168                         <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
169                         <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
170                         <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
171                         <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
172                         <citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
173                 </para>
174         </refsect1>
175
176 </refentry>