]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd.xml
resolved: if ipv6 is off patch hostname→address query with unspec family to ipv4
[thirdparty/systemd.git] / man / systemd.xml
CommitLineData
514094f9 1<?xml version='1.0'?>
3a54a157 2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
12b42c76 3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
db9ecf05 4<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
9e632bf7 5
dfdebb1b 6<refentry id="systemd"
798d3a52
ZJS
7 xmlns:xi="http://www.w3.org/2001/XInclude">
8
9 <refentryinfo>
10 <title>systemd</title>
11 <productname>systemd</productname>
798d3a52
ZJS
12 </refentryinfo>
13
14 <refmeta>
15 <refentrytitle>systemd</refentrytitle>
16 <manvolnum>1</manvolnum>
17 </refmeta>
18
19 <refnamediv>
20 <refname>systemd</refname>
21 <refname>init</refname>
22 <refpurpose>systemd system and service manager</refpurpose>
23 </refnamediv>
24
25 <refsynopsisdiv>
26 <cmdsynopsis>
b57b372a 27 <command>/usr/lib/systemd/systemd</command>
770c4777 28 <arg choice="opt" rep="repeat">OPTIONS</arg>
798d3a52
ZJS
29 </cmdsynopsis>
30 <cmdsynopsis>
770c4777
ZJS
31 <command>init</command>
32 <arg choice="opt" rep="repeat">OPTIONS</arg>
33 <arg choice="req">COMMAND</arg>
798d3a52
ZJS
34 </cmdsynopsis>
35 </refsynopsisdiv>
36
37 <refsect1>
38 <title>Description</title>
39
c035f376 40 <para>systemd is a system and service manager for Linux operating systems. When run as first process on
11fcfc53 41 boot (as PID 1), it acts as init system that brings up and maintains userspace services. Separate
c035f376
ZJS
42 instances are started for logged-in users to start their services.</para>
43
44 <para><command>systemd</command> is usually not invoked directly by the user, but is installed as the
45 <filename>/sbin/init</filename> symlink and started during early boot. The user manager instances are
46 started automatically through the
47 <citerefentry><refentrytitle>user@.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
48 service.</para>
49
50 <para>For compatibility with SysV, if the binary is called as <command>init</command> and is not the
51 first process on the machine (PID is not 1), it will execute <command>telinit</command> and pass all
52 command line arguments unmodified. That means <command>init</command> and <command>telinit</command> are
53 mostly equivalent when invoked from normal login sessions. See
54 <citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry> for more
55 information.</para>
798d3a52
ZJS
56
57 <para>When run as a system instance, systemd interprets the
58 configuration file <filename>system.conf</filename> and the files
59 in <filename>system.conf.d</filename> directories; when run as a
60 user instance, systemd interprets the configuration file
61 <filename>user.conf</filename> and the files in
62 <filename>user.conf.d</filename> directories. See
63 <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
64 for more information.</para>
65 </refsect1>
66
798d3a52
ZJS
67 <refsect1>
68 <title>Concepts</title>
69
70 <para>systemd provides a dependency system between various
19f0cf65 71 entities called "units" of 11 different types. Units encapsulate
798d3a52
ZJS
72 various objects that are relevant for system boot-up and
73 maintenance. The majority of units are configured in unit
74 configuration files, whose syntax and basic set of options is
75 described in
76 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
a814eae7 77 however some are created automatically from other configuration
78 files, dynamically from system state or programmatically at runtime.
1eecafb8 79 Units may be "active" (meaning started, bound, plugged in, …,
798d3a52 80 depending on the unit type, see below), or "inactive" (meaning
1eecafb8 81 stopped, unbound, unplugged, …), as well as in the process of
798d3a52
ZJS
82 being activated or deactivated, i.e. between the two states (these
83 states are called "activating", "deactivating"). A special
84 "failed" state is available as well, which is very similar to
85 "inactive" and is entered when the service failed in some way
bd2538b5
KBM
86 (process returned error code on exit, or crashed, an operation
87 timed out, or after too many restarts). If this state is entered,
88 the cause will be logged, for later reference. Note that the
89 various unit types may have a number of additional substates,
90 which are mapped to the five generalized unit states described
91 here.</para>
798d3a52
ZJS
92
93 <para>The following unit types are available:</para>
94
95 <orderedlist>
96 <listitem><para>Service units, which start and control daemons
b938cb90 97 and the processes they consist of. For details, see
798d3a52
ZJS
98 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
99
100 <listitem><para>Socket units, which encapsulate local IPC or
101 network sockets in the system, useful for socket-based
b938cb90 102 activation. For details about socket units, see
798d3a52
ZJS
103 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
104 for details on socket-based activation and other forms of
105 activation, see
106 <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para></listitem>
107
108 <listitem><para>Target units are useful to group units, or
109 provide well-known synchronization points during boot-up, see
110 <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
111
112 <listitem><para>Device units expose kernel devices in systemd
113 and may be used to implement device-based activation. For
b938cb90 114 details, see
798d3a52
ZJS
115 <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
116
117 <listitem><para>Mount units control mount points in the file
118 system, for details see
119 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
120
121 <listitem><para>Automount units provide automount capabilities,
122 for on-demand mounting of file systems as well as parallelized
123 boot-up. See
124 <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
798d3a52
ZJS
125
126 <listitem><para>Timer units are useful for triggering activation
127 of other units based on timers. You may find details in
128 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
129
130 <listitem><para>Swap units are very similar to mount units and
131 encapsulate memory swap partitions or files of the operating
132 system. They are described in
133 <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
134
135 <listitem><para>Path units may be used to activate other
136 services when file system objects change or are modified. See
137 <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
138
139 <listitem><para>Slice units may be used to group units which
140 manage system processes (such as service and scope units) in a
141 hierarchical tree for resource management purposes. See
142 <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
143
144 <listitem><para>Scope units are similar to service units, but
145 manage foreign processes instead of starting them as well. See
146 <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
147
148 </orderedlist>
149
150 <para>Units are named as their configuration files. Some units
151 have special semantics. A detailed list is available in
152 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
153
154 <para>systemd knows various kinds of dependencies, including
155 positive and negative requirement dependencies (i.e.
156 <varname>Requires=</varname> and <varname>Conflicts=</varname>) as
157 well as ordering dependencies (<varname>After=</varname> and
158 <varname>Before=</varname>). NB: ordering and requirement
159 dependencies are orthogonal. If only a requirement dependency
160 exists between two units (e.g. <filename>foo.service</filename>
161 requires <filename>bar.service</filename>), but no ordering
162 dependency (e.g. <filename>foo.service</filename> after
163 <filename>bar.service</filename>) and both are requested to start,
164 they will be started in parallel. It is a common pattern that both
165 requirement and ordering dependencies are placed between two
166 units. Also note that the majority of dependencies are implicitly
167 created and maintained by systemd. In most cases, it should be
168 unnecessary to declare additional dependencies manually, however
169 it is possible to do this.</para>
170
171 <para>Application programs and units (via dependencies) may
172 request state changes of units. In systemd, these requests are
173 encapsulated as 'jobs' and maintained in a job queue. Jobs may
174 succeed or can fail, their execution is ordered based on the
175 ordering dependencies of the units they have been scheduled
176 for.</para>
177
178 <para>On boot systemd activates the target unit
179 <filename>default.target</filename> whose job is to activate
180 on-boot services and other on-boot units by pulling them in via
b938cb90 181 dependencies. Usually, the unit name is just an alias (symlink) for
798d3a52
ZJS
182 either <filename>graphical.target</filename> (for fully-featured
183 boots into the UI) or <filename>multi-user.target</filename> (for
184 limited console-only boots for use in embedded or server
185 environments, or similar; a subset of graphical.target). However,
186 it is at the discretion of the administrator to configure it as an
187 alias to any other target unit. See
188 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
189 for details about these target units.</para>
190
bfa769d1
ZJS
191 <para>On first boot, <command>systemd</command> will enable or disable units according to preset policy.
192 See <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
193 and "First Boot Semantics" in
194 <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
195
196 <para>systemd only keeps a minimal set of units loaded into memory. Specifically, the only units that are
197 kept loaded into memory are those for which at least one of the following conditions is true:</para>
e5b62c9b
LP
198
199 <orderedlist>
05d4db20 200 <listitem><para>It is in an active, activating, deactivating or failed state (i.e. in any unit state except for <literal>inactive</literal>)</para></listitem>
e5b62c9b 201 <listitem><para>It has a job queued for it</para></listitem>
42a739a0 202 <listitem><para>It is a dependency of at least one other unit that is loaded into memory</para></listitem>
e5b62c9b
LP
203 <listitem><para>It has some form of resource still allocated (e.g. a service unit that is inactive but for which
204 a process is still lingering that ignored the request to be terminated)</para></listitem>
205 <listitem><para>It has been pinned into memory programmatically by a D-Bus call</para></listitem>
206 </orderedlist>
207
208 <para>systemd will automatically and implicitly load units from disk — if they are not loaded yet — as soon as
209 operations are requested for them. Thus, in many respects, the fact whether a unit is loaded or not is invisible to
210 clients. Use <command>systemctl list-units --all</command> to comprehensively list all units currently loaded. Any
211 unit for which none of the conditions above applies is promptly unloaded. Note that when a unit is unloaded from
212 memory its accounting data is flushed out too. However, this data is generally not lost, as a journal log record
213 is generated declaring the consumed resources whenever a unit shuts down.</para>
214
6d48c7cf
LP
215 <para>Processes systemd spawns are placed in individual Linux control groups named after the unit which
216 they belong to in the private systemd hierarchy. (see <ulink
217 url="https://docs.kernel.org/admin-guide/cgroup-v2.html">Control Groups v2</ulink> for more information
218 about control groups, or short "cgroups"). systemd uses this to effectively keep track of
219 processes. Control group information is maintained in the kernel, and is accessible via the file system
220 hierarchy (beneath <filename>/sys/fs/cgroup/</filename>), or in tools such as <citerefentry
221 project='man-pages'><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry> or
222 <citerefentry
223 project='man-pages'><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> (<command>ps
224 xawf -eo pid,user,cgroup,args</command> is particularly useful to list all processes and the systemd
225 units they belong to.).</para>
798d3a52
ZJS
226
227 <para>systemd is compatible with the SysV init system to a large
228 degree: SysV init scripts are supported and simply read as an
229 alternative (though limited) configuration file format. The SysV
230 <filename>/dev/initctl</filename> interface is provided, and
231 compatibility implementations of the various SysV client tools are
232 available. In addition to that, various established Unix
233 functionality such as <filename>/etc/fstab</filename> or the
234 <filename>utmp</filename> database are supported.</para>
235
236 <para>systemd has a minimal transaction system: if a unit is
237 requested to start up or shut down it will add it and all its
238 dependencies to a temporary transaction. Then, it will verify if
239 the transaction is consistent (i.e. whether the ordering of all
240 units is cycle-free). If it is not, systemd will try to fix it up,
241 and removes non-essential jobs from the transaction that might
242 remove the loop. Also, systemd tries to suppress non-essential
243 jobs in the transaction that would stop a running service. Finally
244 it is checked whether the jobs of the transaction contradict jobs
245 that have already been queued, and optionally the transaction is
246 aborted then. If all worked out and the transaction is consistent
247 and minimized in its impact it is merged with all already
248 outstanding jobs and added to the run queue. Effectively this
249 means that before executing a requested operation, systemd will
250 verify that it makes sense, fixing it if possible, and only
251 failing if it really cannot work.</para>
92e29d82 252
05d4db20
JK
253 <para>Note that transactions are generated independently of a unit's
254 state at runtime, hence, for example, if a start job is requested on an
255 already started unit, it will still generate a transaction and wake up any
256 inactive dependencies (and cause propagation of other jobs as per the
257 defined relationships). This is because the enqueued job is at the time of
258 execution compared to the target unit's state and is marked successful and
259 complete when both satisfy. However, this job also pulls in other
260 dependencies due to the defined relationships and thus leads to, in our
5ec7a994 261 example, start jobs for any of those inactive units getting queued as
05d4db20 262 well.</para>
798d3a52 263
f95b0be7 264 <para>systemd contains native implementations of various tasks
798d3a52
ZJS
265 that need to be executed as part of the boot process. For example,
266 it sets the hostname or configures the loopback network device. It
267 also sets up and mounts various API file systems, such as
3b121157 268 <filename>/sys/</filename> or <filename>/proc/</filename>.</para>
798d3a52
ZJS
269
270 <para>For more information about the concepts and
271 ideas behind systemd, please refer to the
272 <ulink url="http://0pointer.de/blog/projects/systemd.html">Original Design Document</ulink>.</para>
273
21556381
ZJS
274 <para>Note that some but not all interfaces provided by systemd are covered by the
275 <ulink url="https://systemd.io/PORTABILITY_AND_STABILITY/">Interface Portability and Stability Promise</ulink>.</para>
798d3a52
ZJS
276
277 <para>Units may be generated dynamically at boot and system
278 manager reload time, for example based on other configuration
b938cb90 279 files or parameters passed on the kernel command line. For details, see
b1c1a519 280 <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
798d3a52 281
3031660c 282 <para>The D-Bus API of <command>systemd</command> is described in
1a0e562a
ZJS
283 <citerefentry><refentrytitle>org.freedesktop.systemd1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
284 and
285 <citerefentry><refentrytitle>org.freedesktop.LogControl1</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
286 </para>
3031660c 287
53dc5fbc 288 <para>Systems which invoke systemd in a container or initrd environment should implement the <ulink
f856778b 289 url="https://systemd.io/CONTAINER_INTERFACE">Container Interface</ulink> or
290 <ulink url="https://systemd.io/INITRD_INTERFACE/">initrd Interface</ulink>
798d3a52
ZJS
291 specifications, respectively.</para>
292 </refsect1>
293
294 <refsect1>
295 <title>Directories</title>
296
297 <variablelist>
298 <varlistentry>
299 <term>System unit directories</term>
300
301 <listitem><para>The systemd system manager reads unit
302 configuration from various directories. Packages that want to
303 install unit files shall place them in the directory returned
304 by <command>pkg-config systemd
305 --variable=systemdsystemunitdir</command>. Other directories
306 checked are <filename>/usr/local/lib/systemd/system</filename>
12b42c76 307 and <filename>/usr/lib/systemd/system</filename>. User
798d3a52
ZJS
308 configuration always takes precedence. <command>pkg-config
309 systemd --variable=systemdsystemconfdir</command> returns the
310 path of the system configuration directory. Packages should
311 alter the content of these directories only with the
312 <command>enable</command> and <command>disable</command>
313 commands of the
314 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
315 tool. Full list of directories is provided in
316 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
317 </para></listitem>
318 </varlistentry>
319 </variablelist>
320
321 <variablelist>
322 <varlistentry>
323 <term>User unit directories</term>
324
325 <listitem><para>Similar rules apply for the user unit
326 directories. However, here the
41d6f3bf 327 <ulink url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
798d3a52
ZJS
328 Base Directory specification</ulink> is followed to find
329 units. Applications should place their unit files in the
330 directory returned by <command>pkg-config systemd
331 --variable=systemduserunitdir</command>. Global configuration
332 is done in the directory reported by <command>pkg-config
333 systemd --variable=systemduserconfdir</command>. The
334 <command>enable</command> and <command>disable</command>
335 commands of the
336 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
337 tool can handle both global (i.e. for all users) and private
338 (for one user) enabling/disabling of units. Full list of
339 directories is provided in
340 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
341 </para></listitem>
342 </varlistentry>
343 </variablelist>
344
345 <variablelist>
346 <varlistentry>
347 <term>SysV init scripts directory</term>
348
349 <listitem><para>The location of the SysV init script directory
350 varies between distributions. If systemd cannot find a native
351 unit file for a requested service, it will look for a SysV
352 init script of the same name (with the
353 <filename>.service</filename> suffix
354 removed).</para></listitem>
355 </varlistentry>
356 </variablelist>
357
358 <variablelist>
359 <varlistentry>
360 <term>SysV runlevel link farm directory</term>
361
362 <listitem><para>The location of the SysV runlevel link farm
363 directory varies between distributions. systemd will take the
364 link farm into account when figuring out whether a service
365 shall be enabled. Note that a service unit with a native unit
366 configuration file cannot be started by activating it in the
367 SysV runlevel link farm.</para></listitem>
368 </varlistentry>
369 </variablelist>
370 </refsect1>
371
372 <refsect1>
373 <title>Signals</title>
374
375 <variablelist>
376 <varlistentry>
377 <term><constant>SIGTERM</constant></term>
378
379 <listitem><para>Upon receiving this signal the systemd system
380 manager serializes its state, reexecutes itself and
381 deserializes the saved state again. This is mostly equivalent
382 to <command>systemctl daemon-reexec</command>.</para>
383
384 <para>systemd user managers will start the
385 <filename>exit.target</filename> unit when this signal is
386 received. This is mostly equivalent to <command>systemctl
d60cb656 387 --user start exit.target
27e64442 388 --job-mode=replace-irreversibly</command>.</para></listitem>
798d3a52
ZJS
389 </varlistentry>
390
391 <varlistentry>
392 <term><constant>SIGINT</constant></term>
393
84afbbcf
ZJS
394 <listitem><para>Upon receiving this signal the systemd system manager will start the
395 <filename>ctrl-alt-del.target</filename> unit. This is mostly equivalent to
27e64442 396 <command>systemctl start ctrl-alt-del.target --job-mode=replace-irreversibly</command>. If
84afbbcf
ZJS
397 this signal is received more than 7 times per 2s, an immediate reboot is triggered. Note
398 that pressing
399 <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Del</keycap></keycombo> on the
400 console will trigger this signal. Hence, if a reboot is hanging, pressing
401 <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Del</keycap></keycombo> more than
402 7 times in 2 seconds is a relatively safe way to trigger an immediate reboot.</para>
798d3a52
ZJS
403
404 <para>systemd user managers treat this signal the same way as
405 <constant>SIGTERM</constant>.</para></listitem>
406 </varlistentry>
407
408 <varlistentry>
409 <term><constant>SIGWINCH</constant></term>
410
411 <listitem><para>When this signal is received the systemd
412 system manager will start the
413 <filename>kbrequest.target</filename> unit. This is mostly
414 equivalent to <command>systemctl start
415 kbrequest.target</command>.</para>
416
417 <para>This signal is ignored by systemd user
418 managers.</para></listitem>
419 </varlistentry>
420
421 <varlistentry>
422 <term><constant>SIGPWR</constant></term>
423
424 <listitem><para>When this signal is received the systemd
425 manager will start the <filename>sigpwr.target</filename>
426 unit. This is mostly equivalent to <command>systemctl start
427 sigpwr.target</command>.</para></listitem>
428 </varlistentry>
429
430 <varlistentry>
431 <term><constant>SIGUSR1</constant></term>
432
433 <listitem><para>When this signal is received the systemd
434 manager will try to reconnect to the D-Bus
435 bus.</para></listitem>
436 </varlistentry>
437
438 <varlistentry>
439 <term><constant>SIGUSR2</constant></term>
440
441 <listitem><para>When this signal is received the systemd
b938cb90 442 manager will log its complete state in human-readable form.
798d3a52
ZJS
443 The data logged is the same as printed by
444 <command>systemd-analyze dump</command>.</para></listitem>
445 </varlistentry>
446
447 <varlistentry>
448 <term><constant>SIGHUP</constant></term>
449
450 <listitem><para>Reloads the complete daemon configuration.
451 This is mostly equivalent to <command>systemctl
452 daemon-reload</command>.</para></listitem>
453 </varlistentry>
454
455 <varlistentry>
456 <term><constant>SIGRTMIN+0</constant></term>
457
458 <listitem><para>Enters default mode, starts the
459 <filename>default.target</filename> unit. This is mostly
d60cb656 460 equivalent to <command>systemctl isolate
798d3a52
ZJS
461 default.target</command>.</para></listitem>
462 </varlistentry>
463
464 <varlistentry>
465 <term><constant>SIGRTMIN+1</constant></term>
466
467 <listitem><para>Enters rescue mode, starts the
468 <filename>rescue.target</filename> unit. This is mostly
469 equivalent to <command>systemctl isolate
470 rescue.target</command>.</para></listitem>
471 </varlistentry>
472
473 <varlistentry>
474 <term><constant>SIGRTMIN+2</constant></term>
475
476 <listitem><para>Enters emergency mode, starts the
477 <filename>emergency.service</filename> unit. This is mostly
478 equivalent to <command>systemctl isolate
479 emergency.service</command>.</para></listitem>
480 </varlistentry>
481
482 <varlistentry>
483 <term><constant>SIGRTMIN+3</constant></term>
484
485 <listitem><para>Halts the machine, starts the
486 <filename>halt.target</filename> unit. This is mostly
d60cb656 487 equivalent to <command>systemctl start halt.target
27e64442 488 --job-mode=replace-irreversibly</command>.</para>
d60cb656 489 </listitem>
798d3a52
ZJS
490 </varlistentry>
491
492 <varlistentry>
493 <term><constant>SIGRTMIN+4</constant></term>
494
495 <listitem><para>Powers off the machine, starts the
496 <filename>poweroff.target</filename> unit. This is mostly
d60cb656 497 equivalent to <command>systemctl start poweroff.target
27e64442 498 --job-mode=replace-irreversibly</command>.</para>
d60cb656 499 </listitem>
798d3a52
ZJS
500 </varlistentry>
501
502 <varlistentry>
503 <term><constant>SIGRTMIN+5</constant></term>
504
505 <listitem><para>Reboots the machine, starts the
506 <filename>reboot.target</filename> unit. This is mostly
d60cb656 507 equivalent to <command>systemctl start reboot.target
27e64442 508 --job-mode=replace-irreversibly</command>.</para>
d60cb656 509 </listitem>
798d3a52
ZJS
510 </varlistentry>
511
512 <varlistentry>
513 <term><constant>SIGRTMIN+6</constant></term>
514
515 <listitem><para>Reboots the machine via kexec, starts the
516 <filename>kexec.target</filename> unit. This is mostly
d60cb656 517 equivalent to <command>systemctl start kexec.target
27e64442 518 --job-mode=replace-irreversibly</command>.</para>
d60cb656 519 </listitem>
798d3a52
ZJS
520 </varlistentry>
521
4de66581
LP
522 <varlistentry>
523 <term><constant>SIGRTMIN+7</constant></term>
524
525 <listitem><para>Reboots userspace, starts the <filename>soft-reboot.target</filename> unit. This is
526 mostly equivalent to <command>systemctl start soft-reboot.target
527 --job-mode=replace-irreversibly</command>.</para>
528 </listitem>
529 </varlistentry>
530
798d3a52
ZJS
531 <varlistentry>
532 <term><constant>SIGRTMIN+13</constant></term>
533
534 <listitem><para>Immediately halts the machine.</para></listitem>
535 </varlistentry>
536
537 <varlistentry>
538 <term><constant>SIGRTMIN+14</constant></term>
539
540 <listitem><para>Immediately powers off the machine.</para></listitem>
541 </varlistentry>
542
543 <varlistentry>
544 <term><constant>SIGRTMIN+15</constant></term>
545
546 <listitem><para>Immediately reboots the machine.</para></listitem>
547 </varlistentry>
548
549 <varlistentry>
550 <term><constant>SIGRTMIN+16</constant></term>
551
552 <listitem><para>Immediately reboots the machine with kexec.</para></listitem>
553 </varlistentry>
554
4de66581
LP
555 <varlistentry>
556 <term><constant>SIGRTMIN+17</constant></term>
557
558 <listitem><para>Immediately reboots the userspace.</para></listitem>
559 </varlistentry>
560
798d3a52
ZJS
561 <varlistentry>
562 <term><constant>SIGRTMIN+20</constant></term>
563
564 <listitem><para>Enables display of status messages on the
565 console, as controlled via
566 <varname>systemd.show_status=1</varname> on the kernel command
567 line.</para></listitem>
568 </varlistentry>
569
570 <varlistentry>
571 <term><constant>SIGRTMIN+21</constant></term>
572
573 <listitem><para>Disables display of
574 status messages on the console, as
575 controlled via
576 <varname>systemd.show_status=0</varname>
577 on the kernel command
578 line.</para></listitem>
579 </varlistentry>
580
581 <varlistentry>
582 <term><constant>SIGRTMIN+22</constant></term>
a6ecbf83
FB
583
584 <listitem><para>Sets the service manager's log level to <literal>debug</literal>, in a fashion equivalent to
585 <varname>systemd.log_level=debug</varname> on the kernel command line.</para></listitem>
586 </varlistentry>
587
588 <varlistentry>
798d3a52
ZJS
589 <term><constant>SIGRTMIN+23</constant></term>
590
a6ecbf83
FB
591 <listitem><para>Restores the log level to its configured value. The configured value is derived from – in order
592 of priority – the value specified with <varname>systemd.log-level=</varname> on the kernel command line, or the
593 value specified with <option>LogLevel=</option> in the configuration file, or the built-in default of
594 <literal>info</literal>.</para></listitem>
798d3a52
ZJS
595 </varlistentry>
596
597 <varlistentry>
598 <term><constant>SIGRTMIN+24</constant></term>
599
600 <listitem><para>Immediately exits the manager (only available
601 for --user instances).</para></listitem>
602 </varlistentry>
603
463aef23
FB
604 <varlistentry>
605 <term><constant>SIGRTMIN+25</constant></term>
606
607 <listitem><para>Upon receiving this signal the systemd manager will reexecute itself. This
608 is mostly equivalent to <command>systemctl daemon-reexec</command> except that it will be
609 done asynchronously.</para>
610
611 <para>The systemd system manager treats this signal the same way as
612 <constant>SIGTERM</constant>.</para></listitem>
613 </varlistentry>
614
798d3a52
ZJS
615 <varlistentry>
616 <term><constant>SIGRTMIN+26</constant></term>
bda7d78b
FB
617
618 <listitem><para>Restores the log target to its configured value. The configured value is derived from – in
619 order of priority – the value specified with <varname>systemd.log-target=</varname> on the kernel command line,
620 or the value specified with <option>LogTarget=</option> in the configuration file, or the built-in
621 default.</para></listitem>
622 </varlistentry>
623
624 <varlistentry>
798d3a52
ZJS
625 <term><constant>SIGRTMIN+27</constant></term>
626 <term><constant>SIGRTMIN+28</constant></term>
627
bda7d78b
FB
628 <listitem><para>Sets the log target to <literal>console</literal> on <constant>SIGRTMIN+27</constant> (or
629 <literal>kmsg</literal> on <constant>SIGRTMIN+28</constant>), in a fashion equivalent to
630 <varname>systemd.log_target=console</varname> (or <varname>systemd.log_target=kmsg</varname> on
631 <constant>SIGRTMIN+28</constant>) on the kernel command line.</para></listitem>
798d3a52
ZJS
632 </varlistentry>
633 </variablelist>
634 </refsect1>
635
636 <refsect1>
637 <title>Environment</title>
638
d5158643 639 <para>The environment block for the system manager is initially set by the kernel. (In particular,
f2f40edc 640 <literal>key=value</literal> assignments on the kernel command line are turned into environment
d5158643
ZJS
641 variables for PID 1). For the user manager, the system manager sets the environment as described in the
642 "Environment Variables in Spawned Processes" section of
643 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
644 <varname>DefaultEnvironment=</varname> setting in the system manager applies to all services including
645 <filename>user@.service</filename>. Additional entries may be configured (as for any other service)
646 through the <varname>Environment=</varname> and <varname>EnvironmentFile=</varname> settings for
647 <filename>user@.service</filename> (see
648 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>). Also,
649 additional environment variables may be set through the <varname>ManagerEnvironment=</varname> setting in
650 <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
651 and
652 <citerefentry><refentrytitle>systemd-user.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
653 </para>
654
655 <para>Some of the variables understood by <command>systemd</command>:</para>
656
798d3a52 657 <variablelist class='environment-variables'>
798d3a52 658 <varlistentry>
b4c87f7d
ZJS
659 <term><varname>$SYSTEMD_LOG_LEVEL</varname></term>
660 <listitem><xi:include href="common-variables.xml" xpointer="log-level-body" />
661
662 <para>This can be overridden with <option>--log-level=</option>.</para></listitem>
798d3a52
ZJS
663 </varlistentry>
664
798d3a52 665 <varlistentry>
b4c87f7d
ZJS
666 <term><varname>$SYSTEMD_LOG_COLOR</varname></term>
667 <listitem><xi:include href="common-variables.xml" xpointer="log-color-body" />
668
669 <para>This can be overridden with <option>--log-color=</option>.</para></listitem>
798d3a52
ZJS
670 </varlistentry>
671
798d3a52 672 <varlistentry>
b4c87f7d
ZJS
673 <term><varname>$SYSTEMD_LOG_TIME</varname></term>
674 <listitem><xi:include href="common-variables.xml" xpointer="log-time-body" />
675
676 <para>This can be overridden with <option>--log-time=</option>.</para></listitem>
798d3a52
ZJS
677 </varlistentry>
678
798d3a52 679 <varlistentry>
b4c87f7d
ZJS
680 <term><varname>$SYSTEMD_LOG_LOCATION</varname></term>
681 <listitem><xi:include href="common-variables.xml" xpointer="log-location-body" />
682
683 <para>This can be overridden with <option>--log-location=</option>.</para></listitem>
798d3a52
ZJS
684 </varlistentry>
685
686 <varlistentry>
b4c87f7d
ZJS
687 <term><varname>$SYSTEMD_LOG_TID</varname></term>
688 <listitem><xi:include href="common-variables.xml" xpointer="log-tid-body" /></listitem>
9ee806d1
LP
689 </varlistentry>
690
691 <varlistentry>
b4c87f7d
ZJS
692 <term><varname>$SYSTEMD_LOG_TARGET</varname></term>
693 <listitem><xi:include href="common-variables.xml" xpointer="log-target-body" />
694
695 <para>This can be overridden with <option>--log-target=</option>.</para></listitem>
798d3a52
ZJS
696 </varlistentry>
697
8750a06b
DDM
698 <varlistentry>
699 <term><varname>$SYSTEMD_LOG_RATELIMIT_KMSG</varname></term>
700 <listitem><xi:include href="common-variables.xml" xpointer="log-ratelimit-kmsg" /></listitem>
701 </varlistentry>
702
798d3a52
ZJS
703 <varlistentry>
704 <term><varname>$XDG_CONFIG_HOME</varname></term>
705 <term><varname>$XDG_CONFIG_DIRS</varname></term>
706 <term><varname>$XDG_DATA_HOME</varname></term>
707 <term><varname>$XDG_DATA_DIRS</varname></term>
708
709 <listitem><para>The systemd user manager uses these variables
710 in accordance to the <ulink
41d6f3bf 711 url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
798d3a52
ZJS
712 Base Directory specification</ulink> to find its
713 configuration.</para></listitem>
714 </varlistentry>
715
716 <varlistentry>
717 <term><varname>$SYSTEMD_UNIT_PATH</varname></term>
5b058473
BB
718 <term><varname>$SYSTEMD_GENERATOR_PATH</varname></term>
719 <term><varname>$SYSTEMD_ENVIRONMENT_GENERATOR_PATH</varname></term>
720
721 <listitem><para>Controls where systemd looks for unit files and
722 generators.</para>
723 <para>These variables may contain a list of paths, separated by colons
724 (<literal>:</literal>). When set, if the list ends with an empty
725 component (<literal>...:</literal>), this list is prepended to the
885a4e6c 726 usual set of paths. Otherwise, the specified list replaces the usual
5b058473
BB
727 set of paths.
728 </para></listitem>
798d3a52
ZJS
729 </varlistentry>
730
4ef3ca34
ZJS
731 <xi:include href="common-variables.xml" xpointer="pager"/>
732 <xi:include href="common-variables.xml" xpointer="less"/>
733 <xi:include href="common-variables.xml" xpointer="lesscharset"/>
734 <xi:include href="common-variables.xml" xpointer="lesssecure"/>
735 <xi:include href="common-variables.xml" xpointer="colors"/>
736 <xi:include href="common-variables.xml" xpointer="urlify"/>
23b27b39 737
798d3a52
ZJS
738 <varlistentry>
739 <term><varname>$LISTEN_PID</varname></term>
740 <term><varname>$LISTEN_FDS</varname></term>
8dd4c05b 741 <term><varname>$LISTEN_FDNAMES</varname></term>
798d3a52
ZJS
742
743 <listitem><para>Set by systemd for supervised processes during
744 socket-based activation. See
745 <citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
acf553b0 746 for more information.</para></listitem>
798d3a52
ZJS
747 </varlistentry>
748
749 <varlistentry>
750 <term><varname>$NOTIFY_SOCKET</varname></term>
751
752 <listitem><para>Set by systemd for supervised processes for
753 status and start-up completion notification. See
754 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
acf553b0 755 for more information.</para></listitem>
798d3a52
ZJS
756 </varlistentry>
757 </variablelist>
8ce202fa
LP
758
759 <para>For further environment variables understood by systemd and its various components, see <ulink
760 url="https://systemd.io/ENVIRONMENT">Known Environment Variables</ulink>.</para>
798d3a52
ZJS
761 </refsect1>
762
763 <refsect1>
764 <title>Kernel Command Line</title>
765
ef2c966a
DDM
766 <para>When run as the system instance, systemd parses a number of options listed below. They can be
767 specified as kernel command line arguments which are parsed from a number of sources depending on the
768 environment in which systemd is executed. If run inside a Linux container, these options are parsed from
769 the command line arguments passed to systemd itself, next to any of the command line options listed in
770 the Options section above. If run outside of Linux containers, these arguments are parsed from
771 <filename>/proc/cmdline</filename> and from the <literal>SystemdOptions</literal> EFI variable
772 (on EFI systems) instead. Options from <filename>/proc/cmdline</filename> have higher priority. The
773 following variables are understood:</para>
798d3a52
ZJS
774
775 <variablelist class='kernel-commandline-options'>
776 <varlistentry>
777 <term><varname>systemd.unit=</varname></term>
778 <term><varname>rd.systemd.unit=</varname></term>
779
55c041b4
LP
780 <listitem><para>Overrides the unit to activate on boot. Defaults to
781 <filename>default.target</filename>. This may be used to temporarily boot into a different boot unit,
782 for example <filename>rescue.target</filename> or <filename>emergency.service</filename>. See
798d3a52 783 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
55c041b4
LP
784 for details about these units. The option prefixed with <literal>rd.</literal> is honored only in the
785 initrd, while the one that is not prefixed only in the main system.</para></listitem>
798d3a52
ZJS
786 </varlistentry>
787
788 <varlistentry>
770c4777 789 <term><varname>systemd.dump_core</varname></term>
798d3a52 790
770c4777
ZJS
791 <listitem><para>Takes a boolean argument or enables the option if specified
792 without an argument. If enabled, the systemd manager (PID 1) dumps core when
793 it crashes. Otherwise, no core dump is created. Defaults to enabled.</para>
794 </listitem>
b9e74c39
LP
795 </varlistentry>
796
797 <varlistentry>
770c4777 798 <term><varname>systemd.crash_chvt</varname></term>
b9e74c39 799
e9dd6984
ZJS
800 <listitem><para>Takes a positive integer, or a boolean argument. Can be also specified without an
801 argument, with the same effect as a positive boolean. If a positive integer (in the range 1–63) is
802 specified, the system manager (PID 1) will activate the specified virtual terminal when it crashes.
803 Defaults to disabled, meaning that no such switch is attempted. If set to enabled, the virtual
804 terminal the kernel messages are written to is used instead.</para></listitem>
798d3a52
ZJS
805 </varlistentry>
806
807 <varlistentry>
770c4777 808 <term><varname>systemd.crash_shell</varname></term>
798d3a52 809
770c4777
ZJS
810 <listitem><para>Takes a boolean argument or enables the option if specified
811 without an argument. If enabled, the system manager (PID 1) spawns a shell
812 when it crashes, after a 10s delay. Otherwise, no shell is spawned. Defaults
813 to disabled, for security reasons, as the shell is not protected by password
798d3a52
ZJS
814 authentication.</para></listitem>
815 </varlistentry>
816
817 <varlistentry>
770c4777 818 <term><varname>systemd.crash_reboot</varname></term>
798d3a52 819
770c4777
ZJS
820 <listitem><para>Takes a boolean argument or enables the option if specified
821 without an argument. If enabled, the system manager (PID 1) will reboot the
822 machine automatically when it crashes, after a 10s delay. Otherwise, the
823 system will hang indefinitely. Defaults to disabled, in order to avoid a
824 reboot loop. If combined with <varname>systemd.crash_shell</varname>, the
4cf0b03b 825 system is rebooted after the shell exits.</para></listitem>
798d3a52
ZJS
826 </varlistentry>
827
828 <varlistentry>
770c4777 829 <term><varname>systemd.confirm_spawn</varname></term>
798d3a52 830
770c4777
ZJS
831 <listitem><para>Takes a boolean argument or a path to the virtual console
832 where the confirmation messages should be emitted. Can be also specified
833 without an argument, with the same effect as a positive boolean. If enabled,
834 the system manager (PID 1) asks for confirmation when spawning processes
835 using <option>/dev/console</option>. If a path or a console name (such as
836 <literal>ttyS0</literal>) is provided, the virtual console pointed to by this
837 path or described by the give name will be used instead. Defaults to disabled.
838 </para></listitem>
798d3a52
ZJS
839 </varlistentry>
840
2a12e32e
JK
841 <varlistentry>
842 <term><varname>systemd.service_watchdogs=</varname></term>
843
844 <listitem><para>Takes a boolean argument. If disabled, all service runtime
845 watchdogs (<option>WatchdogSec=</option>) and emergency actions (e.g.
846 <option>OnFailure=</option> or <option>StartLimitAction=</option>) are
847 ignored by the system manager (PID 1); see
848 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
849 Defaults to enabled, i.e. watchdogs and failure actions are processed
850 normally. The hardware watchdog is not affected by this
851 option.</para></listitem>
852 </varlistentry>
853
798d3a52 854 <varlistentry>
770c4777 855 <term><varname>systemd.show_status</varname></term>
798d3a52 856
0d066dd1
ZJS
857 <listitem><para>Takes a boolean argument or the constants <constant>error</constant> and
858 <constant>auto</constant>. Can be also specified without an argument, with the same effect as a
859 positive boolean. If enabled, the systemd manager (PID 1) shows terse service status updates on the
860 console during bootup. With <constant>error</constant>, only messages about failures are shown, but
861 boot is otherwise quiet. <constant>auto</constant> behaves like <option>false</option> until there is
862 a significant delay in boot. Defaults to enabled, unless <option>quiet</option> is passed as kernel
863 command line option, in which case it defaults to <constant>error</constant>. If specified overrides
864 the system manager configuration file option <option>ShowStatus=</option>, see
770c4777 865 <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
c035f376 866 </para></listitem>
798d3a52
ZJS
867 </varlistentry>
868
36cf4507
ZJS
869 <varlistentry>
870 <term><varname>systemd.status_unit_format=</varname></term>
871
580e198a
PM
872 <listitem><para>Takes <option>name</option>, <option>description</option> or
873 <option>combined</option> as the value. If <option>name</option>, the system manager will use unit
874 names in status messages. If <option>combined</option>, the system manager will use unit names and
875 description in status messages. When specified, overrides the system manager configuration file
876 option <option>StatusUnitFormat=</option>, see
36cf4507
ZJS
877 <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
878 </para></listitem>
879 </varlistentry>
880
798d3a52 881 <varlistentry>
770c4777 882 <term><varname>systemd.log_color</varname></term>
798d3a52 883 <term><varname>systemd.log_level=</varname></term>
2526af6d 884 <term><varname>systemd.log_location</varname></term>
3d5f0138 885 <term><varname>systemd.log_target=</varname></term>
c5673ed0 886 <term><varname>systemd.log_time</varname></term>
9ee806d1 887 <term><varname>systemd.log_tid</varname></term>
8750a06b 888 <term><varname>systemd.log_ratelimit_kmsg</varname></term>
798d3a52 889
770c4777 890 <listitem><para>Controls log output, with the same effect as the
9ee806d1
LP
891 <varname>$SYSTEMD_LOG_COLOR</varname>, <varname>$SYSTEMD_LOG_LEVEL</varname>,
892 <varname>$SYSTEMD_LOG_LOCATION</varname>, <varname>$SYSTEMD_LOG_TARGET</varname>,
8750a06b
DDM
893 <varname>$SYSTEMD_LOG_TIME</varname>, <varname>$SYSTEMD_LOG_TID</varname> and
894 <varname>$SYSTEMD_LOG_RATELIMIT_KMSG</varname> environment variables described above.
895 <varname>systemd.log_color</varname>, <varname>systemd.log_location</varname>,
896 <varname>systemd.log_time</varname>, <varname>systemd.log_tid</varname> and
897 <varname>systemd.log_ratelimit_kmsg</varname> can be specified without
9ee806d1 898 an argument, with the same effect as a positive boolean.</para></listitem>
798d3a52
ZJS
899 </varlistentry>
900
901 <varlistentry>
902 <term><varname>systemd.default_standard_output=</varname></term>
903 <term><varname>systemd.default_standard_error=</varname></term>
c035f376
ZJS
904
905 <listitem><para>Controls default standard output and error output for services and sockets. That is,
906 controls the default for <option>StandardOutput=</option> and <option>StandardError=</option> (see
907 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
908 details). Takes one of <option>inherit</option>, <option>null</option>, <option>tty</option>,
909 <option>journal</option>, <option>journal+console</option>, <option>kmsg</option>,
910 <option>kmsg+console</option>. If the argument is omitted
911 <varname>systemd.default-standard-output=</varname> defaults to <option>journal</option> and
912 <varname>systemd.default-standard-error=</varname> to <option>inherit</option>.</para></listitem>
798d3a52
ZJS
913 </varlistentry>
914
915 <varlistentry>
916 <term><varname>systemd.setenv=</varname></term>
917
918 <listitem><para>Takes a string argument in the form
919 VARIABLE=VALUE. May be used to set default environment
920 variables to add to forked child processes. May be used more
921 than once to set multiple variables.</para></listitem>
922 </varlistentry>
923
ee48dbd5
NC
924 <varlistentry>
925 <term><varname>systemd.machine_id=</varname></term>
926
927 <listitem><para>Takes a 32 character hex value to be
928 used for setting the machine-id. Intended mostly for
929 network booting where the same machine-id is desired
930 for every boot.</para></listitem>
931 </varlistentry>
932
72267a55
LP
933 <varlistentry>
934 <term><varname>systemd.set_credential=</varname></term>
935
936 <listitem><para>Sets a system credential, which can then be propagated to system services using the
bbfb25f4 937 <varname>ImportCredential=</varname> or <varname>LoadCredential=</varname> setting, see
72267a55
LP
938 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
939 details. Takes a pair of credential name and value, separated by a colon. Note that the kernel
940 command line is typically accessible by unprivileged programs in
941 <filename>/proc/cmdline</filename>. Thus, this mechanism is not suitable for transferring sensitive
942 data. Use it only for data that is not sensitive (e.g. public keys/certificates, rather than private
fe672fe5
LP
943 keys), or in testing/debugging environments.</para>
944
945 <para>For further information see <ulink url="https://systemd.io/CREDENTIALS">System and Service
946 Credentials</ulink> documentation.</para></listitem>
72267a55
LP
947 </varlistentry>
948
949 <varlistentry>
950 <term><varname>systemd.import_credentials=</varname></term>
951
952 <listitem><para>Takes a boolean argument. If false disables importing credentials from the kernel
8de7de46
LP
953 command line, the DMI/SMBIOS OEM string table, the qemu_fw_cfg subsystem or the EFI kernel
954 stub.</para></listitem>
72267a55
LP
955 </varlistentry>
956
798d3a52
ZJS
957 <varlistentry>
958 <term><varname>quiet</varname></term>
959
960 <listitem><para>Turn off status output at boot, much like
964c4eda 961 <varname>systemd.show_status=no</varname> would. Note that
798d3a52
ZJS
962 this option is also read by the kernel itself and disables
963 kernel log output. Passing this option hence turns off the
964 usual output from both the system manager and the kernel.
965 </para></listitem>
966 </varlistentry>
967
968 <varlistentry>
969 <term><varname>debug</varname></term>
970
971 <listitem><para>Turn on debugging output. This is equivalent
972 to <varname>systemd.log_level=debug</varname>. Note that this
973 option is also read by the kernel itself and enables kernel
974 debug output. Passing this option hence turns on the debug
975 output from both the system manager and the
976 kernel.</para></listitem>
977 </varlistentry>
978
979 <varlistentry>
980 <term><varname>emergency</varname></term>
dcd61450 981 <term><varname>rd.emergency</varname></term>
798d3a52
ZJS
982 <term><varname>-b</varname></term>
983
984 <listitem><para>Boot into emergency mode. This is equivalent
dcd61450
IS
985 to <varname>systemd.unit=emergency.target</varname> or
986 <varname>rd.systemd.unit=emergency.target</varname>, respectively, and
987 provided for compatibility reasons and to be easier to type.</para></listitem>
798d3a52
ZJS
988 </varlistentry>
989
990 <varlistentry>
991 <term><varname>rescue</varname></term>
dcd61450 992 <term><varname>rd.rescue</varname></term>
798d3a52
ZJS
993 <term><varname>single</varname></term>
994 <term><varname>s</varname></term>
995 <term><varname>S</varname></term>
996 <term><varname>1</varname></term>
997
998 <listitem><para>Boot into rescue mode. This is equivalent to
dcd61450
IS
999 <varname>systemd.unit=rescue.target</varname> or
1000 <varname>rd.systemd.unit=rescue.target</varname>, respectively, and
1001 provided for compatibility reasons and to be easier to type.</para></listitem>
798d3a52
ZJS
1002 </varlistentry>
1003
1004 <varlistentry>
1005 <term><varname>2</varname></term>
1006 <term><varname>3</varname></term>
1007 <term><varname>4</varname></term>
1008 <term><varname>5</varname></term>
1009
1010 <listitem><para>Boot into the specified legacy SysV runlevel.
1011 These are equivalent to
1012 <varname>systemd.unit=runlevel2.target</varname>,
1013 <varname>systemd.unit=runlevel3.target</varname>,
1014 <varname>systemd.unit=runlevel4.target</varname>, and
1015 <varname>systemd.unit=runlevel5.target</varname>,
1016 respectively, and provided for compatibility reasons and to be
1017 easier to type.</para></listitem>
1018 </varlistentry>
1019
1020 <varlistentry>
1021 <term><varname>locale.LANG=</varname></term>
1022 <term><varname>locale.LANGUAGE=</varname></term>
1023 <term><varname>locale.LC_CTYPE=</varname></term>
1024 <term><varname>locale.LC_NUMERIC=</varname></term>
1025 <term><varname>locale.LC_TIME=</varname></term>
1026 <term><varname>locale.LC_COLLATE=</varname></term>
1027 <term><varname>locale.LC_MONETARY=</varname></term>
1028 <term><varname>locale.LC_MESSAGES=</varname></term>
1029 <term><varname>locale.LC_PAPER=</varname></term>
1030 <term><varname>locale.LC_NAME=</varname></term>
1031 <term><varname>locale.LC_ADDRESS=</varname></term>
1032 <term><varname>locale.LC_TELEPHONE=</varname></term>
1033 <term><varname>locale.LC_MEASUREMENT=</varname></term>
1034 <term><varname>locale.LC_IDENTIFICATION=</varname></term>
1035
1036 <listitem><para>Set the system locale to use. This overrides
1037 the settings in <filename>/etc/locale.conf</filename>. For
b938cb90 1038 more information, see
3ba3a79d 1039 <citerefentry project='man-pages'><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
798d3a52 1040 and
3ba3a79d 1041 <citerefentry project='man-pages'><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
798d3a52
ZJS
1042 </para></listitem>
1043 </varlistentry>
1044 </variablelist>
1045
1046 <para>For other kernel command line parameters understood by
1047 components of the core OS, please refer to
1048 <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
1049 </refsect1>
c035f376
ZJS
1050
1051 <refsect1>
1052 <title>Options</title>
1053
1054 <para><command>systemd</command> is only very rarely invoked directly, since it is started early and is
1055 already running by the time users may interact with it. Normally, tools like
1056 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> are used to
1057 give commands to the manager. Since <command>systemd</command> is usually not invoked directly, the
1058 options listed below are mostly useful for debugging and special purposes.</para>
1059
1060 <refsect2>
1061 <title>Introspection and debugging options</title>
1062
1063 <para>Those options are used for testing and introspection, and <command>systemd</command> may
1064 be invoked with them at any time:</para>
1065
1066 <variablelist>
1067 <varlistentry>
1068 <term><option>--dump-configuration-items</option></term>
1069
1070 <listitem><para>Dump understood unit configuration items. This outputs a terse but complete list of
1071 configuration items understood in unit definition files.</para></listitem>
1072 </varlistentry>
1073
1074 <varlistentry>
1075 <term><option>--dump-bus-properties</option></term>
1076
1077 <listitem><para>Dump exposed bus properties. This outputs a terse but complete list of properties
1078 exposed on D-Bus.</para></listitem>
1079 </varlistentry>
1080
1081 <varlistentry>
1082 <term><option>--test</option></term>
1083
1084 <listitem><para>Determine the initial start-up transaction (i.e. the list of jobs enqueued at
1085 start-up), dump it and exit — without actually executing any of the determined jobs. This option is
1086 useful for debugging only. Note that during regular service manager start-up additional units not
1087 shown by this operation may be started, because hardware, socket, bus or other kinds of activation
1088 might add additional jobs as the transaction is executed. Use <option>--system</option> to request
1089 the initial transaction of the system service manager (this is also the implied default), combine
1090 with <option>--user</option> to request the initial transaction of the per-user service manager
1091 instead.</para></listitem>
1092 </varlistentry>
1093
1094 <varlistentry>
1095 <term><option>--system</option></term>
1096 <term><option>--user</option></term>
1097
1098 <listitem><para>When used in conjunction with <option>--test</option>, selects whether to calculate
1099 the initial transaction for the system instance or for a per-user instance. These options have no
1100 effect when invoked without <option>--test</option>, as during regular
1101 (i.e. non-<option>--test</option>) invocations the service manager will automatically detect
1102 whether it shall operate in system or per-user mode, by checking whether the PID it is run as is 1
1103 or not. Note that it is not supported booting and maintaining a system with the service manager
1104 running in <option>--system</option> mode but with a PID other than 1.</para></listitem>
1105 </varlistentry>
1106
1107 <xi:include href="standard-options.xml" xpointer="help" />
1108 <xi:include href="standard-options.xml" xpointer="version" />
1109 </variablelist>
1110 </refsect2>
1111
1112 <refsect2>
1113 <title>Options that duplicate kernel command line settings</title>
1114
1115 <para>Those options correspond directly to options listed above in "Kernel Command Line". Both forms
1116 may be used equivalently for the system manager, but it is recommended to use the forms listed above in
1117 this context, because they are properly namespaced. When an option is specified both on the kernel
885a4e6c 1118 command line and as a normal command line argument, the latter has higher precedence.</para>
c035f376 1119
e9dd6984 1120 <para>When <command>systemd</command> is used as a user manager, the kernel command line is ignored and
ab1a8ff5
ZJS
1121 only the options described below are understood. Nevertheless, <command>systemd</command> is usually
1122 started in this mode through the
c035f376 1123 <citerefentry><refentrytitle>user@.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
d5158643 1124 service, which is shared between all users. It may be more convenient to use configuration files to
ab1a8ff5
ZJS
1125 modify settings (see
1126 <citerefentry><refentrytitle>systemd-user.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
d5158643
ZJS
1127 or environment variables. See the "Environment" section above for a discussion of how the environment
1128 block is set.</para>
c035f376
ZJS
1129
1130 <variablelist>
1131 <varlistentry>
1132 <term><option>--unit=</option></term>
1133
1134 <listitem><para>Set default unit to activate on startup. If not specified, defaults to
1135 <filename>default.target</filename>. See <varname>systemd.unit=</varname> above.</para></listitem>
1136 </varlistentry>
1137
1138 <varlistentry>
1139 <term><option>--dump-core</option></term>
1140
1141 <listitem><para>Enable core dumping on crash. This switch has no effect when running as user
1142 instance. Same as <varname>systemd.dump_core=</varname> above.</para></listitem>
1143 </varlistentry>
1144
1145 <varlistentry>
1146 <term><option>--crash-vt=</option><replaceable>VT</replaceable></term>
1147
1148 <listitem><para>Switch to a specific virtual console (VT) on crash. This switch has no effect when
1149 running as user instance. Same as <varname>systemd.crash_chvt=</varname> above (but not the
1150 different spelling!).</para></listitem>
1151 </varlistentry>
1152
1153 <varlistentry>
1154 <term><option>--crash-shell</option></term>
1155
1156 <listitem><para>Run a shell on crash. This switch has no effect when running as user instance. See
1157 <varname>systemd.crash_shell=</varname> above.</para></listitem>
1158 </varlistentry>
1159
1160 <varlistentry>
1161 <term><option>--crash-reboot</option></term>
1162
1163 <listitem><para>Automatically reboot the system on crash. This switch has no effect when running as
1164 user instance. See <varname>systemd.crash_reboot</varname> above.</para></listitem>
1165 </varlistentry>
1166
1167 <varlistentry>
1168 <term><option>--confirm-spawn</option></term>
1169
1170 <listitem><para>Ask for confirmation when spawning processes. This switch has no effect when run as
1171 user instance. See <varname>systemd.confirm_spawn</varname> above.</para></listitem>
1172 </varlistentry>
1173
1174 <varlistentry>
1175 <term><option>--show-status</option></term>
1176
e9dd6984
ZJS
1177 <listitem><para>Show terse unit status information on the console during boot-up and shutdown. See
1178 <varname>systemd.show_status</varname> above.</para></listitem>
c035f376
ZJS
1179 </varlistentry>
1180
1181 <varlistentry>
3d5f0138 1182 <term><option>--log-color</option></term>
c035f376 1183
3d5f0138
DS
1184 <listitem><para>Highlight important log messages. See <varname>systemd.log_color</varname> above.
1185 </para></listitem>
c035f376
ZJS
1186 </varlistentry>
1187
1188 <varlistentry>
1189 <term><option>--log-level=</option></term>
1190
1191 <listitem><para>Set log level. See <varname>systemd.log_level</varname> above.</para></listitem>
1192 </varlistentry>
1193
1194 <varlistentry>
3d5f0138 1195 <term><option>--log-location</option></term>
c035f376 1196
3d5f0138
DS
1197 <listitem><para>Include code location in log messages. See <varname>systemd.log_location</varname>
1198 above.</para></listitem>
c035f376
ZJS
1199 </varlistentry>
1200
1201 <varlistentry>
3d5f0138 1202 <term><option>--log-target=</option></term>
c035f376 1203
3d5f0138 1204 <listitem><para>Set log target. See <varname>systemd.log_target</varname> above.</para></listitem>
c035f376
ZJS
1205 </varlistentry>
1206
1207 <varlistentry>
c5673ed0
DS
1208 <term><option>--log-time=</option></term>
1209
9f40351f 1210 <listitem><para>Prefix console messages with timestamp. See <varname>systemd.log_time</varname> above.
c5673ed0 1211 </para></listitem>
c035f376
ZJS
1212 </varlistentry>
1213
1214 <varlistentry>
1215 <term><option>--machine-id=</option></term>
1216
1217 <listitem><para>Override the machine-id set on the hard drive. See
1218 <varname>systemd.machine_id=</varname> above.</para></listitem>
1219 </varlistentry>
1220
1221 <varlistentry>
1222 <term><option>--service-watchdogs</option></term>
1223
1224 <listitem><para>Globally enable/disable all service watchdog timeouts and emergency actions. See
1225 <varname>systemd.service_watchdogs</varname> above.</para></listitem>
1226 </varlistentry>
1227
1228 <varlistentry>
1229 <term><option>--default-standard-output=</option></term>
1230 <term><option>--default-standard-error=</option></term>
1231
1232 <listitem><para>Sets the default output or error output for all services and sockets,
1233 respectively. See <varname>systemd.default_standard_output=</varname> and
1234 <varname>systemd.default_standard_error=</varname> above.</para></listitem>
1235 </varlistentry>
1236 </variablelist>
1237 </refsect2>
1238 </refsect1>
798d3a52
ZJS
1239
1240 <refsect1>
1241 <title>Sockets and FIFOs</title>
1242
1243 <variablelist>
1244 <varlistentry>
1245 <term><filename>/run/systemd/notify</filename></term>
1246
1247 <listitem><para>Daemon status notification socket. This is an
1248 <constant>AF_UNIX</constant> datagram socket and is used to
1249 implement the daemon notification logic as implemented by
1250 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
1251
1252 </varlistentry>
1253
798d3a52
ZJS
1254 <varlistentry>
1255 <term><filename>/run/systemd/private</filename></term>
1256
1257 <listitem><para>Used internally as communication channel
1258 between
1259 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
1260 and the systemd process. This is an
1261 <constant>AF_UNIX</constant> stream socket. This interface is
1262 private to systemd and should not be used in external
1263 projects.</para></listitem>
1264 </varlistentry>
1265
1266 <varlistentry>
1267 <term><filename>/dev/initctl</filename></term>
1268
1269 <listitem><para>Limited compatibility support for the SysV
1270 client interface, as implemented by the
1271 <filename>systemd-initctl.service</filename> unit. This is a
1272 named pipe in the file system. This interface is obsolete and
1273 should not be used in new applications.</para></listitem>
1274 </varlistentry>
1275 </variablelist>
1276 </refsect1>
1277
7a9e0bd0
ZJS
1278 <refsect1>
1279 <title>History</title>
1280
1281 <variablelist>
1282 <varlistentry>
1283 <term>systemd 252</term>
1284 <listitem><para>Kernel command-line arguments <varname>systemd.unified_cgroup_hierarchy</varname>
1285 and <varname>systemd.legacy_systemd_cgroup_controller</varname> were deprecated. Please switch to
1286 the unified cgroup hierarchy.</para></listitem>
1287 </varlistentry>
1288 </variablelist>
1289 </refsect1>
1290
798d3a52
ZJS
1291 <refsect1>
1292 <title>See Also</title>
1293 <para>
a8c03388 1294 The <ulink url="https://systemd.io/">systemd Homepage</ulink>,
798d3a52 1295 <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
3ba3a79d 1296 <citerefentry project='man-pages'><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
798d3a52
ZJS
1297 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1298 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1299 <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1300 <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1301 <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
3031660c 1302 <citerefentry><refentrytitle>org.freedesktop.systemd1</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
798d3a52 1303 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
675fa6ea 1304 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
798d3a52
ZJS
1305 <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1306 <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1307 <citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1308 <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1309 </para>
1310 </refsect1>
9e632bf7
LP
1311
1312</refentry>