]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd-system.conf.xml
mempress: change default PSI window duration to 2s
[thirdparty/systemd.git] / man / systemd-system.conf.xml
CommitLineData
514094f9 1<?xml version='1.0'?>
3a54a157 2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
444d5863
ZJS
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4<!ENTITY % entities SYSTEM "custom-entities.ent" >
5%entities;
6]>
db9ecf05 7<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
f3e219a2 8
1b907b5c 9<refentry id="systemd-system.conf"
798d3a52
ZJS
10 xmlns:xi="http://www.w3.org/2001/XInclude">
11 <refentryinfo>
12 <title>systemd-system.conf</title>
13 <productname>systemd</productname>
798d3a52
ZJS
14 </refentryinfo>
15
16 <refmeta>
17 <refentrytitle>systemd-system.conf</refentrytitle>
18 <manvolnum>5</manvolnum>
19 </refmeta>
20
21 <refnamediv>
22 <refname>systemd-system.conf</refname>
23 <refname>system.conf.d</refname>
24 <refname>systemd-user.conf</refname>
25 <refname>user.conf.d</refname>
26 <refpurpose>System and session service manager configuration files</refpurpose>
27 </refnamediv>
28
29 <refsynopsisdiv>
03a7b521
LP
30 <para><filename>/etc/systemd/system.conf</filename>,
31 <filename>/etc/systemd/system.conf.d/*.conf</filename>,
32 <filename>/run/systemd/system.conf.d/*.conf</filename>,
33 <filename>/usr/lib/systemd/system.conf.d/*.conf</filename></para>
f70e6fb4
ZJS
34
35 <para><filename>~/.config/systemd/user.conf</filename>,
36 <filename>/etc/systemd/user.conf</filename>,
03a7b521
LP
37 <filename>/etc/systemd/user.conf.d/*.conf</filename>,
38 <filename>/run/systemd/user.conf.d/*.conf</filename>,
39 <filename>/usr/lib/systemd/user.conf.d/*.conf</filename></para>
798d3a52
ZJS
40 </refsynopsisdiv>
41
42 <refsect1>
43 <title>Description</title>
44
f70e6fb4
ZJS
45 <para>When run as a system instance, <command>systemd</command> interprets the configuration file
46 <filename>system.conf</filename> and the files in <filename>system.conf.d</filename> directories; when
47 run as a user instance, it interprets the configuration file <filename>user.conf</filename> (either in
48 the home directory of the user, or if not found, under <filename>/etc/systemd/</filename>) and the files
49 in <filename>user.conf.d</filename> directories. These configuration files contain a few settings
50 controlling basic manager operations.</para>
51
52 <para>See
53 <citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry> for a
54 general description of the syntax.</para>
798d3a52
ZJS
55 </refsect1>
56
e93549ef 57 <xi:include href="standard-conf.xml" xpointer="main-conf" />
798d3a52
ZJS
58
59 <refsect1>
60 <title>Options</title>
61
62 <para>All options are configured in the
bdac5608 63 [Manager] section:</para>
798d3a52 64
d2acdcc6 65 <variablelist class='config-directives'>
798d3a52
ZJS
66
67 <varlistentry>
798d3a52 68 <term><varname>LogColor=</varname></term>
3d5f0138 69 <term><varname>LogLevel=</varname></term>
798d3a52 70 <term><varname>LogLocation=</varname></term>
3d5f0138 71 <term><varname>LogTarget=</varname></term>
c5673ed0 72 <term><varname>LogTime=</varname></term>
798d3a52 73 <term><varname>DumpCore=yes</varname></term>
b9e74c39 74 <term><varname>CrashChangeVT=no</varname></term>
798d3a52 75 <term><varname>CrashShell=no</varname></term>
b9e74c39 76 <term><varname>CrashReboot=no</varname></term>
798d3a52 77 <term><varname>ShowStatus=yes</varname></term>
798d3a52
ZJS
78 <term><varname>DefaultStandardOutput=journal</varname></term>
79 <term><varname>DefaultStandardError=inherit</varname></term>
80
33fc1800
LP
81 <listitem><para>Configures various parameters of basic manager operation. These options may be overridden by
82 the respective process and kernel command line arguments. See
83 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> for
84 details.</para></listitem>
798d3a52
ZJS
85 </varlistentry>
86
24dd31c1
LN
87 <varlistentry>
88 <term><varname>CtrlAltDelBurstAction=</varname></term>
89
90 <listitem><para>Defines what action will be performed
2dd67817 91 if user presses Ctrl-Alt-Delete more than 7 times in 2s.
ae8c7939
LN
92 Can be set to <literal>reboot-force</literal>, <literal>poweroff-force</literal>,
93 <literal>reboot-immediate</literal>, <literal>poweroff-immediate</literal>
94 or disabled with <literal>none</literal>. Defaults to
24dd31c1
LN
95 <literal>reboot-force</literal>.
96 </para></listitem>
97 </varlistentry>
98
798d3a52
ZJS
99 <varlistentry>
100 <term><varname>CPUAffinity=</varname></term>
101
61fbbac1
ZJS
102 <listitem><para>Configures the CPU affinity for the service manager as well as the default CPU
103 affinity for all forked off processes. Takes a list of CPU indices or ranges separated by either
104 whitespace or commas. CPU ranges are specified by the lower and upper CPU indices separated by a
105 dash. This option may be specified more than once, in which case the specified CPU affinity masks are
106 merged. If the empty string is assigned, the mask is reset, all assignments prior to this will have
107 no effect. Individual services may override the CPU affinity for their processes with the
108 <varname>CPUAffinity=</varname> setting in unit files, see
d68c0833 109 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
b070c7c0
MS
110 </varlistentry>
111
112 <varlistentry>
113 <term><varname>NUMAPolicy=</varname></term>
114
115 <listitem><para>Configures the NUMA memory policy for the service manager and the default NUMA memory policy
116 for all forked off processes. Individual services may override the default policy with the
117 <varname>NUMAPolicy=</varname> setting in unit files, see
118 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
119 </varlistentry>
120
121 <varlistentry>
122 <term><varname>NUMAMask=</varname></term>
123
124 <listitem><para>Configures the NUMA node mask that will be associated with the selected NUMA policy. Note that
125 <option>default</option> and <option>local</option> NUMA policies don't require explicit NUMA node mask and
d238709c 126 value of the option can be empty. Similarly to <varname>NUMAPolicy=</varname>, value can be overridden
b070c7c0
MS
127 by individual services in unit files, see
128 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
798d3a52
ZJS
129 </varlistentry>
130
798d3a52
ZJS
131 <varlistentry>
132 <term><varname>RuntimeWatchdogSec=</varname></term>
65224c1d 133 <term><varname>RebootWatchdogSec=</varname></term>
acafd7d8 134 <term><varname>KExecWatchdogSec=</varname></term>
798d3a52 135
807938e7
FB
136 <listitem><para>Configure the hardware watchdog at runtime and at reboot. Takes a timeout value in
137 seconds (or in other time units if suffixed with <literal>ms</literal>, <literal>min</literal>,
5254d158
LP
138 <literal>h</literal>, <literal>d</literal>, <literal>w</literal>), or the special strings
139 <literal>off</literal> or <literal>default</literal>. If set to <literal>off</literal>
140 (alternatively: <literal>0</literal>) the watchdog logic is disabled: no watchdog device is opened,
141 configured, or pinged. If set to the special string <literal>default</literal> the watchdog is opened
142 and pinged in regular intervals, but the timeout is not changed from the default. If set to any other
143 time value the watchdog timeout is configured to the specified value (or a value close to it,
144 depending on hardware capabilities).</para>
807938e7
FB
145
146 <para>If <varname>RuntimeWatchdogSec=</varname> is set to a non-zero value, the watchdog hardware
59bcac0b 147 (<filename>/dev/watchdog0</filename> or the path specified with <varname>WatchdogDevice=</varname> or
807938e7
FB
148 the kernel option <varname>systemd.watchdog-device=</varname>) will be programmed to automatically
149 reboot the system if it is not contacted within the specified timeout interval. The system manager
150 will ensure to contact it at least once in half the specified timeout interval. This feature requires
151 a hardware watchdog device to be present, as it is commonly the case in embedded and server
152 systems. Not all hardware watchdogs allow configuration of all possible reboot timeout values, in
153 which case the closest available timeout is picked.</para>
154
155 <para><varname>RebootWatchdogSec=</varname> may be used to configure the hardware watchdog when the
156 system is asked to reboot. It works as a safety net to ensure that the reboot takes place even if a
157 clean reboot attempt times out. Note that the <varname>RebootWatchdogSec=</varname> timeout applies
158 only to the second phase of the reboot, i.e. after all regular services are already terminated, and
159 after the system and service manager process (PID 1) got replaced by the
160 <filename>systemd-shutdown</filename> binary, see system
161 <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
162 details. During the first phase of the shutdown operation the system and service manager remains
163 running and hence <varname>RuntimeWatchdogSec=</varname> is still honoured. In order to define a
164 timeout on this first phase of system shutdown, configure <varname>JobTimeoutSec=</varname> and
165 <varname>JobTimeoutAction=</varname> in the [Unit] section of the
166 <filename>shutdown.target</filename> unit. By default <varname>RuntimeWatchdogSec=</varname> defaults
167 to 0 (off), and <varname>RebootWatchdogSec=</varname> to 10min.</para>
168
169 <para><varname>KExecWatchdogSec=</varname> may be used to additionally enable the watchdog when kexec
170 is being executed rather than when rebooting. Note that if the kernel does not reset the watchdog on
171 kexec (depending on the specific hardware and/or driver), in this case the watchdog might not get
172 disabled after kexec succeeds and thus the system might get rebooted, unless
173 <varname>RuntimeWatchdogSec=</varname> is also enabled at the same time. For this reason it is
174 recommended to enable <varname>KExecWatchdogSec=</varname> only if
175 <varname>RuntimeWatchdogSec=</varname> is also enabled.</para>
176
177 <para>These settings have no effect if a hardware watchdog is not available.</para></listitem>
798d3a52
ZJS
178 </varlistentry>
179
5717062e
CK
180 <varlistentry>
181 <term><varname>RuntimeWatchdogPreSec=</varname></term>
182
183 <listitem><para>Configure the hardware watchdog device pre-timeout value.
184 Takes a timeout value in seconds (or in other time units similar to
185 <varname>RuntimeWatchdogSec=</varname>). A watchdog pre-timeout is a
186 notification generated by the watchdog before the watchdog reset might
187 occur in the event the watchdog has not been serviced. This notification
188 is handled by the kernel and can be configured to take an action (i.e.
aff3a9e1
LB
189 generate a kernel panic) using <varname>RuntimeWatchdogPreGovernor=</varname>.
190 Not all watchdog hardware or drivers support generating a pre-timeout and
191 depending on the state of the system, the kernel may be unable to take the
192 configured action before the watchdog reboot. The watchdog will be configured
193 to generate the pre-timeout event at the amount of time specified by
194 <varname>RuntimeWatchdogPreSec=</varname> before the runtime watchdog timeout
195 (set by <varname>RuntimeWatchdogSec=</varname>). For example, if the we have
5717062e
CK
196 <varname>RuntimeWatchdogSec=30</varname> and
197 <varname>RuntimeWatchdogPreSec=10</varname>, then the pre-timeout event
198 will occur if the watchdog has not pinged for 20s (10s before the
199 watchdog would fire). By default, <varname>RuntimeWatchdogPreSec=</varname>
200 defaults to 0 (off). The value set for <varname>RuntimeWatchdogPreSec=</varname>
201 must be smaller than the timeout value for <varname>RuntimeWatchdogSec=</varname>.
202 This setting has no effect if a hardware watchdog is not available or the
203 hardware watchdog does not support a pre-timeout and will be ignored by the
204 kernel if the setting is greater than the actual watchdog timeout.</para></listitem>
205 </varlistentry>
206
aff3a9e1
LB
207 <varlistentry>
208 <term><varname>RuntimeWatchdogPreGovernor=</varname></term>
209
210 <listitem><para>Configure the action taken by the hardware watchdog device
211 when the pre-timeout expires. The default action for the pre-timeout event
212 depends on the kernel configuration, but it is usually to log a kernel
213 message. For a list of valid actions available for a given watchdog device,
214 check the content of the
215 <filename>/sys/class/watchdog/watchdog<replaceable>X</replaceable>/pretimeout_available_governors</filename>
216 file. Typically, available governor types are <varname>noop</varname> and <varname>panic</varname>.
217 Availability, names and functionality might vary depending on the specific device driver
218 in use. If the <filename>pretimeout_available_governors</filename> sysfs file is empty,
219 the governor might be built as a kernel module and might need to be manually loaded
220 (e.g. <varname>pretimeout_noop.ko</varname>), or the watchdog device might not support
221 pre-timeouts.</para></listitem>
222 </varlistentry>
223
c75396c3
EJ
224 <varlistentry>
225 <term><varname>WatchdogDevice=</varname></term>
226
227 <listitem><para>Configure the hardware watchdog device that the
228 runtime and shutdown watchdog timers will open and use. Defaults
59bcac0b 229 to <filename>/dev/watchdog0</filename>. This setting has no
c75396c3
EJ
230 effect if a hardware watchdog is not available.</para></listitem>
231 </varlistentry>
232
798d3a52
ZJS
233 <varlistentry>
234 <term><varname>CapabilityBoundingSet=</varname></term>
235
236 <listitem><para>Controls which capabilities to include in the
237 capability bounding set for PID 1 and its children. See
238 <citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
239 for details. Takes a whitespace-separated list of capability
240 names as read by
3ba3a79d 241 <citerefentry project='mankier'><refentrytitle>cap_from_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
798d3a52
ZJS
242 Capabilities listed will be included in the bounding set, all
243 others are removed. If the list of capabilities is prefixed
244 with ~, all but the listed capabilities will be included, the
245 effect of the assignment inverted. Note that this option also
246 affects the respective capabilities in the effective,
247 permitted and inheritable capability sets. The capability
248 bounding set may also be individually configured for units
249 using the <varname>CapabilityBoundingSet=</varname> directive
250 for units, but note that capabilities dropped for PID 1 cannot
251 be regained in individual units, they are lost for
252 good.</para></listitem>
253 </varlistentry>
254
39362f6f
JB
255 <varlistentry>
256 <term><varname>NoNewPrivileges=</varname></term>
257
258 <listitem><para>Takes a boolean argument. If true, ensures that PID 1
259 and all its children can never gain new privileges through
260 <citerefentry project='man-pages'><refentrytitle>execve</refentrytitle><manvolnum>2</manvolnum></citerefentry>
261 (e.g. via setuid or setgid bits, or filesystem capabilities).
262 Defaults to false. General purpose distributions commonly rely
263 on executables with setuid or setgid bits and will thus not
264 function properly with this option enabled. Individual units
265 cannot disable this option.
0e685823 266 Also see <ulink url="https://docs.kernel.org/userspace-api/no_new_privs.html">No New Privileges Flag</ulink>.
39362f6f
JB
267 </para></listitem>
268 </varlistentry>
269
798d3a52
ZJS
270 <varlistentry>
271 <term><varname>SystemCallArchitectures=</varname></term>
272
273 <listitem><para>Takes a space-separated list of architecture
274 identifiers. Selects from which architectures system calls may
275 be invoked on this system. This may be used as an effective
276 way to disable invocation of non-native binaries system-wide,
277 for example to prohibit execution of 32-bit x86 binaries on
278 64-bit x86-64 systems. This option operates system-wide, and
279 acts similar to the
280 <varname>SystemCallArchitectures=</varname> setting of unit
281 files, see
282 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
283 for details. This setting defaults to the empty list, in which
284 case no filtering of system calls based on architecture is
285 applied. Known architecture identifiers are
286 <literal>x86</literal>, <literal>x86-64</literal>,
287 <literal>x32</literal>, <literal>arm</literal> and the special
288 identifier <literal>native</literal>. The latter implicitly
289 maps to the native architecture of the system (or more
290 specifically, the architecture the system manager was compiled
291 for). Set this setting to <literal>native</literal> to
292 prohibit execution of any non-native binaries. When a binary
293 executes a system call of an architecture that is not listed
294 in this setting, it will be immediately terminated with the
295 SIGSYS signal.</para></listitem>
296 </varlistentry>
297
298 <varlistentry>
299 <term><varname>TimerSlackNSec=</varname></term>
300
301 <listitem><para>Sets the timer slack in nanoseconds for PID 1,
302 which is inherited by all executed processes, unless
303 overridden individually, for example with the
304 <varname>TimerSlackNSec=</varname> setting in service units
305 (for details see
306 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
307 The timer slack controls the accuracy of wake-ups triggered by
308 system timers. See
309 <citerefentry><refentrytitle>prctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>
310 for more information. Note that in contrast to most other time
311 span definitions this parameter takes an integer value in
312 nano-seconds if no unit is specified. The usual time units are
313 understood too.</para></listitem>
314 </varlistentry>
315
36cf4507
ZJS
316 <varlistentry>
317 <term><varname>StatusUnitFormat=</varname></term>
318
580e198a
PM
319 <listitem><para>Takes <option>name</option>, <option>description</option> or
320 <option>combined</option> as the value. If <option>name</option>, the system manager will use unit
04d232d8
ZJS
321 names in status messages (e.g. <literal>systemd-journald.service</literal>), instead of the longer
322 and more informative descriptions set with <varname>Description=</varname> (e.g. <literal>Journal
323 Logging Service</literal>). If <option>combined</option>, the system manager will use both unit names
be0d27ee 324 and descriptions in status messages (e.g. <literal>systemd-journald.service - Journal Logging
04d232d8
ZJS
325 Service</literal>).</para>
326
327 <para>See
328 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
329 details about unit names and <varname>Description=</varname>.</para></listitem>
36cf4507
ZJS
330 </varlistentry>
331
798d3a52
ZJS
332 <varlistentry>
333 <term><varname>DefaultTimerAccuracySec=</varname></term>
334
335 <listitem><para>Sets the default accuracy of timer units. This
336 controls the global default for the
337 <varname>AccuracySec=</varname> setting of timer units, see
338 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
339 for details. <varname>AccuracySec=</varname> set in individual
340 units override the global default for the specific unit.
341 Defaults to 1min. Note that the accuracy of timer units is
342 also affected by the configured timer slack for PID 1, see
343 <varname>TimerSlackNSec=</varname> above.</para></listitem>
344 </varlistentry>
345
346 <varlistentry>
347 <term><varname>DefaultTimeoutStartSec=</varname></term>
348 <term><varname>DefaultTimeoutStopSec=</varname></term>
dc653bf4 349 <term><varname>DefaultTimeoutAbortSec=</varname></term>
798d3a52
ZJS
350 <term><varname>DefaultRestartSec=</varname></term>
351
e4c7b5f5
ZJS
352 <listitem><para>Configures the default timeouts for starting, stopping and aborting of units, as well
353 as the default time to sleep between automatic restarts of units, as configured per-unit in
354 <varname>TimeoutStartSec=</varname>, <varname>TimeoutStopSec=</varname>,
355 <varname>TimeoutAbortSec=</varname> and <varname>RestartSec=</varname> (for services, see
798d3a52 356 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
e4c7b5f5
ZJS
357 for details on the per-unit settings). For non-service units,
358 <varname>DefaultTimeoutStartSec=</varname> sets the default <varname>TimeoutSec=</varname> value.
359 </para>
360
361 <para><varname>DefaultTimeoutStartSec=</varname> and <varname>DefaultTimeoutStopSec=</varname>
362 default to &DEFAULT_TIMEOUT; in the system manager and &DEFAULT_USER_TIMEOUT; in the user manager.
363 <varname>DefaultTimeoutAbortSec=</varname> is not set by default so that all units fall back to
364 <varname>TimeoutStopSec=</varname>. <varname>DefaultRestartSec=</varname> defaults to 100 ms.
365 </para></listitem>
798d3a52
ZJS
366 </varlistentry>
367
9e69bd48
DT
368 <varlistentry>
369 <term><varname>DefaultDeviceTimeoutSec=</varname></term>
370
371 <listitem><para>Configures the default timeout for waiting for devices. It can be changed per
372 device via the <varname>x-systemd.device-timeout=</varname> option in <filename>/etc/fstab</filename>
373 and <filename>/etc/crypttab</filename> (see
374 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
375 <citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
e4c7b5f5
ZJS
376 Defaults to &DEFAULT_TIMEOUT; in the system manager and &DEFAULT_USER_TIMEOUT; in the user manager.
377 </para></listitem>
9e69bd48
DT
378 </varlistentry>
379
798d3a52 380 <varlistentry>
f0367da7 381 <term><varname>DefaultStartLimitIntervalSec=</varname></term>
798d3a52
ZJS
382 <term><varname>DefaultStartLimitBurst=</varname></term>
383
384 <listitem><para>Configure the default unit start rate
385 limiting, as configured per-service by
f0367da7 386 <varname>StartLimitIntervalSec=</varname> and
798d3a52
ZJS
387 <varname>StartLimitBurst=</varname>. See
388 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
f5a05fb5 389 for details on the per-service settings.
f0367da7 390 <varname>DefaultStartLimitIntervalSec=</varname> defaults to
f5a05fb5
LP
391 10s. <varname>DefaultStartLimitBurst=</varname> defaults to
392 5.</para></listitem>
798d3a52
ZJS
393 </varlistentry>
394
395 <varlistentry>
396 <term><varname>DefaultEnvironment=</varname></term>
397
d55ed7de
ZJS
398 <listitem><para>Configures environment variables passed to all executed processes. Takes a
399 space-separated list of variable assignments. See <citerefentry
400 project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
401 details about environment variables.</para>
798d3a52 402
46a9ee5d
LP
403 <para>Simple <literal>%</literal>-specifier expansion is supported, see below for a list of supported
404 specifiers.</para>
405
798d3a52
ZJS
406 <para>Example:
407
408 <programlisting>DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"</programlisting>
409
410 Sets three variables
411 <literal>VAR1</literal>,
412 <literal>VAR2</literal>,
413 <literal>VAR3</literal>.</para></listitem>
414 </varlistentry>
415
d55ed7de
ZJS
416 <varlistentry>
417 <term><varname>ManagerEnvironment=</varname></term>
418
419 <listitem><para>Takes the same arguments as <varname>DefaultEnvironment=</varname>, see above. Sets
c54cfef3
AZ
420 environment variables just for the manager process itself. In contrast to user managers, these variables
421 are not inherited by processes spawned by the system manager, use <varname>DefaultEnvironment=</varname>
422 for that. Note that these variables are merged into the existing environment block. In particular, in
423 case of the system manager, this includes variables set by the kernel based on the kernel command line.</para>
d55ed7de
ZJS
424
425 <para>Setting environment variables for the manager process may be useful to modify its behaviour.
426 See <ulink url="https://systemd.io/ENVIRONMENT">ENVIRONMENT</ulink> for a descriptions of some
46a9ee5d
LP
427 variables understood by <command>systemd</command>.</para>
428
429 <para>Simple <literal>%</literal>-specifier expansion is supported, see below for a list of supported
430 specifiers.</para>
431 </listitem>
d55ed7de
ZJS
432 </varlistentry>
433
798d3a52
ZJS
434 <varlistentry>
435 <term><varname>DefaultCPUAccounting=</varname></term>
798d3a52 436 <term><varname>DefaultMemoryAccounting=</varname></term>
03a7b521 437 <term><varname>DefaultTasksAccounting=</varname></term>
b34a2108 438 <term><varname>DefaultIOAccounting=</varname></term>
8d8631d4 439 <term><varname>DefaultIPAccounting=</varname></term>
798d3a52 440
8d8631d4 441 <listitem><para>Configure the default resource accounting settings, as configured per-unit by
6d48c7cf
LP
442 <varname>CPUAccounting=</varname>, <varname>MemoryAccounting=</varname>,
443 <varname>TasksAccounting=</varname>, <varname>IOAccounting=</varname> and
444 <varname>IPAccounting=</varname>. See
798d3a52 445 <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
5ee91c0d 446 for details on the per-unit settings. <varname>DefaultTasksAccounting=</varname> defaults to yes,
695e39dd
ZJS
447 <varname>DefaultMemoryAccounting=</varname> to &MEMORY_ACCOUNTING_DEFAULT;.
448 <varname>DefaultCPUAccounting=</varname> defaults to yes, but really has no effect if enabling CPU
449 accounting doesn't require the <option>cpu</option> controller to be enabled (Linux 4.15+ using the
450 unified hierarchy for resource control), otherwise it defaults to no. The other three settings
451 default to no.</para></listitem>
798d3a52
ZJS
452 </varlistentry>
453
0af20ea2
LP
454 <varlistentry>
455 <term><varname>DefaultTasksMax=</varname></term>
456
79baeeb9 457 <listitem><para>Configure the default value for the per-unit <varname>TasksMax=</varname> setting. See
0af20ea2 458 <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
79baeeb9 459 for details. This setting applies to all unit types that support resource control settings, with the exception
9c587d66
EL
460 of slice units. Defaults to 15% of the minimum of <varname>kernel.pid_max=</varname>, <varname>kernel.threads-max=</varname>
461 and root cgroup <varname>pids.max</varname>.
77f5277a 462 Kernel has a default value for <varname>kernel.pid_max=</varname> and an algorithm of counting in case of more than 32 cores.
5c7a4f21 463 For example, with the default <varname>kernel.pid_max=</varname>, <varname>DefaultTasksMax=</varname> defaults to 4915,
77f5277a 464 but might be greater in other systems or smaller in OS containers.</para></listitem>
0af20ea2
LP
465 </varlistentry>
466
798d3a52
ZJS
467 <varlistentry>
468 <term><varname>DefaultLimitCPU=</varname></term>
469 <term><varname>DefaultLimitFSIZE=</varname></term>
470 <term><varname>DefaultLimitDATA=</varname></term>
471 <term><varname>DefaultLimitSTACK=</varname></term>
472 <term><varname>DefaultLimitCORE=</varname></term>
473 <term><varname>DefaultLimitRSS=</varname></term>
474 <term><varname>DefaultLimitNOFILE=</varname></term>
475 <term><varname>DefaultLimitAS=</varname></term>
476 <term><varname>DefaultLimitNPROC=</varname></term>
477 <term><varname>DefaultLimitMEMLOCK=</varname></term>
478 <term><varname>DefaultLimitLOCKS=</varname></term>
479 <term><varname>DefaultLimitSIGPENDING=</varname></term>
480 <term><varname>DefaultLimitMSGQUEUE=</varname></term>
481 <term><varname>DefaultLimitNICE=</varname></term>
482 <term><varname>DefaultLimitRTPRIO=</varname></term>
483 <term><varname>DefaultLimitRTTIME=</varname></term>
484
54ed193f
LP
485 <listitem><para>These settings control various default resource limits for processes executed by
486 units. See
487 <citerefentry><refentrytitle>setrlimit</refentrytitle><manvolnum>2</manvolnum></citerefentry> for
488 details. These settings may be overridden in individual units using the corresponding
e9dd6984
ZJS
489 <varname>LimitXXX=</varname> directives and they accept the same parameter syntax,
490 see <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
491 for details. Note that these resource limits are only defaults
1539124b
AZ
492 for units, they are not applied to the service manager process (i.e. PID 1) itself.</para>
493
494 <para>Most of these settings are unset, which means the resource limits are inherited from the kernel or, if
495 invoked in a container, from the container manager. However, the following have defaults:</para>
496 <itemizedlist>
852b6250 497 <listitem><para><varname>DefaultLimitNOFILE=</varname> defaults to 1024:&HIGH_RLIMIT_NOFILE;.
1539124b
AZ
498 </para></listitem>
499
852b6250
LP
500 <listitem><para><varname>DefaultLimitMEMLOCK=</varname> defaults to 8M.</para></listitem>
501
1539124b
AZ
502 <listitem><para><varname>DefaultLimitCORE=</varname> does not have a default but it is worth mentioning that
503 <varname>RLIMIT_CORE</varname> is set to <literal>infinity</literal> by PID 1 which is inherited by its
504 children.</para></listitem>
1539124b
AZ
505 </itemizedlist>
506
852b6250
LP
507 <para>Note that the service manager internally in PID 1 bumps <varname>RLIMIT_NOFILE</varname> and
508 <varname>RLIMIT_MEMLOCK</varname> to higher values, however the limit is reverted to the mentioned
509 defaults for all child processes forked off.</para>
1539124b 510 </listitem>
798d3a52 511 </varlistentry>
8e74bf7f
LP
512
513 <varlistentry>
514 <term><varname>DefaultOOMPolicy=</varname></term>
515
516 <listitem><para>Configure the default policy for reacting to processes being killed by the Linux
2e3591a4 517 Out-Of-Memory (OOM) killer or <command>systemd-oomd</command>. This may be used to pick a global default for the per-unit
8e74bf7f
LP
518 <varname>OOMPolicy=</varname> setting. See
519 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
520 for details. Note that this default is not used for services that have <varname>Delegate=</varname>
521 turned on.</para></listitem>
522 </varlistentry>
643006f6
LP
523
524 <varlistentry>
525 <term><varname>DefaultOOMScoreAdjust=</varname></term>
526
527 <listitem><para>Configures the default OOM score adjustments of processes run by the service
528 manager. This defaults to unset (meaning the forked off processes inherit the service manager's OOM
529 score adjustment value), except if the service manager is run for an unprivileged user, in which case
530 this defaults to the service manager's OOM adjustment value plus 100 (this makes service processes
531 slightly more likely to be killed under memory pressure than the manager itself). This may be used to
532 pick a global default for the per-unit <varname>OOMScoreAdjust=</varname> setting. See
533 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
534 details. Note that this setting has no effect on the OOM score adjustment value of the service
535 manager process itself, it retains the original value set during its invocation.</para></listitem>
536 </varlistentry>
aa5ae971
ŁS
537
538 <varlistentry>
539 <term><varname>DefaultSmackProcessLabel=</varname></term>
540
541 <listitem><para>Takes a <option>SMACK64</option> security label as the argument. The process executed
542 by a unit will be started under this label if <varname>SmackProcessLabel=</varname> is not set in the
543 unit. See <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
544 for the details.</para>
545
546 <para>If the value is <literal>/</literal>, only labels specified with <varname>SmackProcessLabel=</varname>
547 are assigned and the compile-time default is ignored.</para></listitem>
548 </varlistentry>
856bfaeb
LB
549
550 <varlistentry>
551 <term><varname>ReloadLimitIntervalSec=</varname></term>
552 <term><varname>ReloadLimitBurst=</varname></term>
553
554 <listitem><para>Rate limiting for daemon-reload requests. Default to unset, and any number of daemon-reload
555 operations can be requested at any time. <varname>ReloadLimitIntervalSec=</varname> takes a value in seconds
556 to configure the rate limit window, and <varname>ReloadLimitBurst=</varname> takes a positive integer to
557 configure the maximum allowed number of reloads within the configured time window.</para></listitem>
558 </varlistentry>
6bb00842
LP
559
560 <varlistentry>
561 <term><varname>DefaultMemoryPressureWatch=</varname></term>
562 <term><varname>DefaultMemoryPressureThresholdSec=</varname></term>
563
564 <listitem><para>Configures the default settings for the per-unit
565 <varname>MemoryPressureWatch=</varname> and <varname>MemoryPressureThresholdSec=</varname>
566 settings. See
567 <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
a6170074 568 for details. Defaults to <literal>auto</literal> and <literal>200ms</literal>, respectively. This
6bb00842
LP
569 also sets the memory pressure monitoring threshold for the service manager itself.</para></listitem>
570 </varlistentry>
798d3a52
ZJS
571 </variablelist>
572 </refsect1>
573
46a9ee5d
LP
574 <refsect1>
575 <title>Specifiers</title>
576
577 <para>Specifiers may be used in the <varname>DefaultEnvironment=</varname> and
578 <varname>ManagerEnvironment=</varname> settings. The following expansions are understood:</para>
579 <table class='specifiers'>
580 <title>Specifiers available</title>
581 <tgroup cols='3' align='left' colsep='1' rowsep='1'>
582 <colspec colname="spec" />
583 <colspec colname="mean" />
584 <colspec colname="detail" />
585 <thead>
586 <row>
587 <entry>Specifier</entry>
588 <entry>Meaning</entry>
589 <entry>Details</entry>
590 </row>
591 </thead>
592 <tbody>
593 <xi:include href="standard-specifiers.xml" xpointer="a"/>
594 <xi:include href="standard-specifiers.xml" xpointer="A"/>
595 <xi:include href="standard-specifiers.xml" xpointer="b"/>
596 <xi:include href="standard-specifiers.xml" xpointer="B"/>
597 <xi:include href="standard-specifiers.xml" xpointer="H"/>
598 <xi:include href="standard-specifiers.xml" xpointer="l"/>
599 <xi:include href="standard-specifiers.xml" xpointer="m"/>
600 <xi:include href="standard-specifiers.xml" xpointer="M"/>
601 <xi:include href="standard-specifiers.xml" xpointer="o"/>
602 <xi:include href="standard-specifiers.xml" xpointer="v"/>
603 <xi:include href="standard-specifiers.xml" xpointer="w"/>
604 <xi:include href="standard-specifiers.xml" xpointer="W"/>
605 <xi:include href="standard-specifiers.xml" xpointer="T"/>
606 <xi:include href="standard-specifiers.xml" xpointer="V"/>
607 <xi:include href="standard-specifiers.xml" xpointer="percent"/>
608 </tbody>
609 </tgroup>
610 </table>
611 </refsect1>
612
7a9e0bd0
ZJS
613 <refsect1>
614 <title>History</title>
615
616 <variablelist>
617 <varlistentry>
618 <term>systemd 252</term>
619 <listitem><para>Option <varname>DefaultBlockIOAccounting=</varname> was deprecated. Please switch
620 to the unified cgroup hierarchy.</para></listitem>
621 </varlistentry>
622 </variablelist>
623 </refsect1>
624
798d3a52
ZJS
625 <refsect1>
626 <title>See Also</title>
627 <para>
628 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
629 <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
630 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
631 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
632 <citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
633 <citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
634 </para>
635 </refsect1>
f3e219a2
LP
636
637</refentry>