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