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