]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd.xml
install: optionally remove all symlinks from configuration tree recursively
[thirdparty/systemd.git] / man / systemd.xml
CommitLineData
9e632bf7
LP
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 General Public License as published by
12 the Free Software Foundation; either version 2 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 General Public License for more details.
19
20 You should have received a copy of the GNU 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>
160cd5c9 42 <manvolnum>1</manvolnum>
9e632bf7
LP
43 </refmeta>
44
45 <refnamediv>
46 <refname>systemd</refname>
6f6083dc 47 <refname>init</refname>
9e632bf7
LP
48 <refpurpose>systemd System and Session Manager</refpurpose>
49 </refnamediv>
50
2218198b
LP
51 <refsynopsisdiv>
52 <cmdsynopsis>
160cd5c9 53 <command>systemd <arg choice="opt" rep="repeat">OPTIONS</arg></command>
2218198b
LP
54 </cmdsynopsis>
55 <cmdsynopsis>
160cd5c9 56 <command>init <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="req">COMMAND</arg></command>
2218198b
LP
57 </cmdsynopsis>
58 </refsynopsisdiv>
59
9e632bf7
LP
60 <refsect1>
61 <title>Description</title>
62
2218198b
LP
63 <para>systemd is a system and session manager for
64 Linux operating systems. When run as first process on
af62c704
KS
65 boot (as PID 1), it acts as init system that brings
66 up and maintains userspace services.</para>
2218198b 67
af62c704 68 <para>For compatibility with SysV, if systemd is called
2218198b 69 as <command>init</command> and a PID that is not
af62c704 70 1, it will execute <command>telinit</command> and pass
2218198b
LP
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>
f3e219a2
LP
76
77 <para>When run as system instance, systemd interprets
78 the configuration file
79 <filename>system.conf</filename>, otherwise
80 <filename>session.conf</filename>. See
81 <citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
82 for more information.</para>
2218198b
LP
83 </refsect1>
84
85 <refsect1>
86 <title>Options</title>
87
88 <para>The following options are understood:</para>
89
90 <variablelist>
91 <varlistentry>
160cd5c9
LP
92 <term><option>-h</option></term>
93 <term><option>--help</option></term>
2218198b
LP
94
95 <listitem><para>Prints a short help
96 text and exits.</para></listitem>
97 </varlistentry>
f3e219a2
LP
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
ad678a06 120 mostly useful at install time
f3e219a2
LP
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>
2218198b
LP
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>
edb9aaa8
LP
138 <term><option>--system</option></term>
139 <term><option>--session</option></term>
140
141 <listitem><para>Tell systemd to run a
142 system instance (resp. session
143 instance), even if the process ID is
144 not 1 (resp. is 1), i.e. system is not
145 (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
2218198b
LP
151 debugging.</para></listitem>
152 </varlistentry>
153 <varlistentry>
f3e219a2 154 <term><option>--dump-core</option></term>
2218198b 155
f3e219a2 156 <listitem><para>Dump core on crash. This switch has no effect when run as session instance.</para></listitem>
2218198b
LP
157 </varlistentry>
158 <varlistentry>
f3e219a2 159 <term><option>--crash-shell</option></term>
2218198b 160
f3e219a2 161 <listitem><para>Run shell on crash. This switch has no effect when run as session instance.</para></listitem>
2218198b
LP
162 </varlistentry>
163 <varlistentry>
164 <term><option>--confirm-spawn</option></term>
165
f3e219a2 166 <listitem><para>Ask for confirmation when spawning processes. This switch has no effect when run as session instance.</para></listitem>
2218198b
LP
167 </varlistentry>
168 <varlistentry>
f3e219a2 169 <term><option>--show-status</option></term>
2218198b 170
f3e219a2
LP
171 <listitem><para>Show terse service status information while booting. This switch has no effect when run as session instance.</para></listitem>
172 </varlistentry>
173 <varlistentry>
174 <term><option>--log-target=</option></term>
175
176 <listitem><para>Set log
177 target. Argument must be one of
178 <option>console</option>,
179 <option>syslog</option>,
180 <option>kmsg</option>,
181 <option>syslog-or-kmsg</option>,
182 <option>null</option>.</para></listitem>
2218198b
LP
183 </varlistentry>
184 <varlistentry>
185 <term><option>--log-level=</option></term>
186
187 <listitem><para>Set log level. As
188 argument this accepts a numerical log
189 level or the well-known <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
190 symbolic names (lowercase):
191 <option>emerg</option>,
192 <option>alert</option>,
193 <option>crit</option>,
194 <option>err</option>,
195 <option>warning</option>,
196 <option>notice</option>,
197 <option>info</option>,
198 <option>debug</option>.</para></listitem>
199 </varlistentry>
2218198b
LP
200 <varlistentry>
201 <term><option>--log-color=</option></term>
202
203 <listitem><para>Highlight important
204 log messages. Argument is a boolean
205 value. If the argument is omitted it
206 defaults to
207 <option>true</option>.</para></listitem>
208 </varlistentry>
209 <varlistentry>
210 <term><option>--log-location=</option></term>
211
212 <listitem><para>Include code location
213 in log messages. This is mostly
214 relevant for debugging
215 purposes. Argument is a boolean
216 value. If the argument is omitted
217 it defaults to
218 <option>true</option>.</para></listitem>
219 </varlistentry>
2218198b
LP
220 </variablelist>
221 </refsect1>
222
99ffae46
LP
223 <refsect1>
224 <title>Concepts</title>
225
226 <para>systemd provides a dependency system between
227 various entities called "units". Units encapsulate
228 various objects that are relevant for system boot-up
229 and maintainance. The majority of units are configured
230 in unit configuration files, whose syntax and basic
231 set of options is described in
232 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
233 however some are created automatically from other
234 configuration or dynamically from system state. Units
235 may be active (meaning started, bound, plugged in, ...
236 depending on the unit type), or inactive (meaning
dccb2600 237 stopped, unbound, unplugged, ...), as well as in the
99ffae46
LP
238 process of being activated or deactivated,
239 i.e. between the two states. The following unit types
240 are available:</para>
241
242 <orderedlist>
243 <listitem><para>Service units, which control
244 daemons and the processes they consist of. For
245 details see
246 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
247
248 <listitem><para>Socket units, which
249 encapsulate local IPC or network sockets in
250 the system, useful for socket-based
251 activation. For details about socket units see
252 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
253 for details on socket-based activation and
254 other forms of activation, see
255 <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para></listitem>
256
257 <listitem><para>Target units are useful to
258 group units, or provide well-known
259 synchronization points during boot-up, see
260 <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
261
262 <listitem><para>Device units expose kernel
263 devices in systemd and may be used to
264 implement device-based activation. For details
265 see
266 <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
267
268 <listitem><para>Mount units control mount
269 points in the file system, for details see
270 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
271
272 <listitem><para>Automount units provide
273 automount capabilities, for on-demand mounting
274 of file systems as well as parallelized
275 boot-up. See
276 <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
277
278 <listitem><para>Snapshot units can be used to
279 temporarily save the state of the set of
280 systemd units, which later may be restored by
281 activating the saved snapshot unit. For more
282 information see
7461d1b7 283 <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
99ffae46
LP
284
285 <listitem><para>Timer units are useful for
286 triggering activation of other units based on
287 timers. You may find details in
288 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
289
290 <listitem><para>Swap units are very similar to
291 mount units and encapsulated memory swap
292 partitions or files of the operating
293 systemd. They are described in <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
294
295 <listitem><para>Path units may be used
dccb2600 296 to activate other services when file system
99ffae46
LP
297 objects change or are modified. See
298 <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
299
300 </orderedlist>
301
302 <para>Units are named as their configuration
303 files. Some units have special semantics. A detailed
304 list you may find in
305 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
306
307 <para>On boot systemd activates the target unit
dccb2600 308 <filename>default.target</filename> whose job is to
99ffae46
LP
309 activate on-boot services and other on-boot units by
310 pulling them in via dependencies. Usually the unit
311 name is just an alias (symlink) for either
312 <filename>graphical.target</filename> (for
313 fully-featured boots into the UI) or
314 <filename>multi-user.target</filename> (for limited
315 console-only boots for use in embedded or server
316 environments, or similar; a subset of
317 graphical.target). However it is at the discretion of
318 the administrator to configure it as an alias to any
319 other target unit. See
320 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
321 for details about these target units.</para>
322
dccb2600 323 <para>Processes systemd spawns are placed in
59a3e1bc
LP
324 individual Linux control groups named after the unit
325 which they belong to in the private systemd
326 hierarchy. (see <ulink
327 url="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>
328 for more information about control groups, or short
329 "cgroups"). systemd uses this to effectively keep
330 track of processes. Control group information is
331 maintained in the kernel, and is accessible via the
332 file system hierarchy (beneath
333 <filename>/cgroup/systemd/</filename>), or in tools
334 such as
335 <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
336 (<command>ps xawf -eo pid,user,cgroup,args</command>
337 is particularly useful to list all processes and the
338 systemd units they belong to.).</para>
339
340 <para>systemd is compatible with the SysV init system
341 to a large degree: SysV init scripts are supported and
342 simply read as an alternative (though limited)
343 configuration file format. The SysV
344 <filename>/dev/initctl</filename> interface is
dccb2600
OÇ
345 provided, and compatibility implementations of the
346 various SysV client tools are available. In addition to
347 that, various established Unix functionality such as
59a3e1bc
LP
348 <filename>/etc/fstab</filename> or the
349 <filename>utmp</filename> database are
350 supported.</para>
351
352 <para>systemd has a minimal transaction system: if a
353 unit is requested to start up or shut down it will add
354 it and all its dependencies to a temporary
355 transaction. Then, it will verify if the transaction
356 is consistent (i.e. whether the ordering of all units
357 is cycle-free). If it is not, systemd will try to fix
358 it up, and removes non-essential jobs from the
359 transaction that might remove the loop. Also, systemd
360 tries to suppress non-essential jobs in the
361 transaction that would stop a running service. Finally
362 it is checked whether the jobs of the transaction
363 contradict jobs that have already been queued, and
364 optionally the transaction is aborted then. If all
365 worked out and the transaction is consistent and
366 minimized in its impact it is merged with all already
367 outstanding jobs and added to the run
368 queue. Effectively this means that before executing a
369 requested operation, systemd will verify that it makes
370 sense, fixing it if possible, and only failing if it
371 really cannot work.</para>
372
373 <para>Systemd contains native implementations of
374 various tasks that need to be executed as part of the
375 boot process. For example, it sets the host name or
376 configures the loopback network device. It also sets
377 up and mounts various API file systems, such as
378 <filename>/sys</filename> or
379 <filename>/proc</filename>.</para>
380
99ffae46
LP
381 <para>For more information about the concepts and
382 ideas behind systemd please refer to the <ulink
383 url="http://0pointer.de/blog/projects/systemd.html">Original
59a3e1bc 384 Design Document</ulink>.</para>
99ffae46
LP
385 </refsect1>
386
160cd5c9
LP
387 <refsect1>
388 <title>Directories</title>
7874bcd6
LP
389
390 <variablelist>
391 <varlistentry>
392 <term>System unit directories</term>
393
394 <listitem><para>The systemd system
395 manager reads unit configuration from
396 various directories. Packages that
397 want to install unit files shall place
398 them in the directory returned by
399 <command>pkg-config systemd
400 --variable=systemdsystemunitdir</command>. Other
401 directories checked are
402 <filename>/usr/local/share/systemd/system</filename>
403 and
404 <filename>/usr/share/systemd/system</filename>. User
405 configuration always takes
406 precedence. <command>pkg-config
407 systemd
408 --variable=systemdsystemconfdir</command>
409 returns the path of the system
410 configuration directory. Packages
af62c704
KS
411 should alter the content of these directories
412 only with the
7874bcd6
LP
413 <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>
414 tool.</para></listitem>
415 </varlistentry>
416 </variablelist>
417
418 <variablelist>
419 <varlistentry>
420 <term>Session unit directories</term>
421
422 <listitem><para>Similar rules apply
423 for the session unit
424 directories. However, here the <ulink
425 url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
426 Base Directory specification</ulink>
427 is followed to find
428 units. Applications should place their
429 unit files in the directory returned
430 by <command>pkg-config systemd
431 --variable=systemdsessionunitdir</command>. Global
432 configuration is done in the
433 directory reported by
434 <command>pkg-config systemd
435 --variable=systemdsessionconfdir</command>. The
436 <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>
437 tool can handle both global (i.e. for
438 all users) and private (for one user)
439 enabling/disabling of
440 units.</para></listitem>
441 </varlistentry>
442 </variablelist>
443
444 <variablelist>
445 <varlistentry>
446 <term>SysV init scripts directory</term>
447
448 <listitem><para>The location of the
449 SysV init script directory varies
450 between distributions. If systemd
451 cannot find a native unit file for a
af62c704 452 requested service, it will look for a
7874bcd6
LP
453 SysV init script of the same name
454 (with the
455 <filename>.service</filename> suffix
456 removed).</para></listitem>
457 </varlistentry>
458 </variablelist>
459
460 <variablelist>
461 <varlistentry>
462 <term>SysV runlevel link farm directory</term>
463
464 <listitem><para>The location of the
465 SysV runlevel link farm directory
466 varies between distributions. systemd
467 will take the link farm into account
468 when figuring out whether a service
469 shall be enabled. Note that a service
470 unit with a native unit configuration
edb9aaa8 471 file cannot be started by activating it
7874bcd6
LP
472 in the SysV runlevel link
473 farm.</para></listitem>
474 </varlistentry>
475 </variablelist>
160cd5c9
LP
476 </refsect1>
477
478 <refsect1>
7874bcd6 479 <title>Signals</title>
160cd5c9
LP
480
481 <variablelist>
482 <varlistentry>
7874bcd6
LP
483 <term>SIGTERM</term>
484
485 <listitem><para>Upon receiving this
486 signal the systemd system manager
487 serializes its state, reexecutes
488 itself and deserializes the saved
489 state again. This is mostly equivalent
490 to <command>systemctl
491 daemon-reexec</command>.</para>
492
493 <para>systemd session managers will
494 start the
495 <filename>exit.target</filename> unit
496 when this signal is received. This is
497 mostly equivalent to
498 <command>systemctl --session start
499 exit.target</command>.</para></listitem>
500 </varlistentry>
501
502 <varlistentry>
503 <term>SIGINT</term>
504
505 <listitem><para>Upon receiving this
506 signal the systemd system manager will
507 start the
508 <filename>ctrl-alt-del.target</filename> unit. This
509 is mostly equivalent to
510 <command>systemctl start
511 ctl-alt-del.target</command>.</para>
512
513 <para>systemd session managers
514 treat this signal the same way as
515 SIGTERM.</para></listitem>
516 </varlistentry>
517
518 <varlistentry>
519 <term>SIGWINCH</term>
520
521 <listitem><para>When this signal is
522 received the systemd system manager
523 will start the
524 <filename>kbrequest.target</filename>
525 unit. This is mostly equivalent to
526 <command>systemctl start
527 kbrequest.target</command>.</para>
528
529 <para>This signal is ignored by
530 systemd session
531 managers.</para></listitem>
532 </varlistentry>
533
534 <varlistentry>
535 <term>SIGPWR</term>
536
537 <listitem><para>When this signal is
538 received the systemd manager
539 will start the
540 <filename>sigpwr.target</filename>
541 unit. This is mostly equivalent to
542 <command>systemctl start
543 sigpwr.target</command>.</para></listitem>
544 </varlistentry>
545
546 <varlistentry>
547 <term>SIGUSR1</term>
548
549 <listitem><para>When this signal is
550 received the systemd manager will try
551 to reconnect to the D-Bus
552 bus.</para></listitem>
553 </varlistentry>
554
555 <varlistentry>
556 <term>SIGUSR2</term>
557
558 <listitem><para>When this signal is
559 received the systemd manager will log
560 its complete state in human readable
561 form. The data logged is the same as
562 printed by <command>systemctl
563 dump</command>.</para></listitem>
564 </varlistentry>
565
566 <varlistentry>
567 <term>SIGHUP</term>
568
569 <listitem><para>Reloads the complete
570 daemon configuration. This is mostly
571 equivalent to <command>systemctl
572 daemon-reload</command>.</para></listitem>
573 </varlistentry>
574
575 <varlistentry>
576 <term>SIGRTMIN+0</term>
577
578 <listitem><para>Enters default mode, starts the
579 <filename>default.target</filename>
580 unit. This is mostly equivalent to
581 <command>systemctl start
582 default.target</command>.</para></listitem>
583 </varlistentry>
584
585 <varlistentry>
586 <term>SIGRTMIN+1</term>
587
588 <listitem><para>Enters rescue mode,
589 starts the
590 <filename>rescue.target</filename>
591 unit. This is mostly equivalent to
592 <command>systemctl isolate
593 rescue.target</command>.</para></listitem>
594 </varlistentry>
160cd5c9 595
7874bcd6
LP
596 <varlistentry>
597 <term>SIGRTMIN+2</term>
598
599 <listitem><para>Enters emergency mode,
600 starts the
601 <filename>emergency.service</filename>
602 unit. This is mostly equivalent to
603 <command>systemctl isolate
604 emergency.service</command>.</para></listitem>
605 </varlistentry>
606
607 <varlistentry>
608 <term>SIGRTMIN+3</term>
609
610 <listitem><para>Halts the machine,
611 starts the
612 <filename>halt.target</filename>
613 unit. This is mostly equivalent to
614 <command>systemctl start
615 halt.target</command>.</para></listitem>
616 </varlistentry>
617
618 <varlistentry>
619 <term>SIGRTMIN+4</term>
620
621 <listitem><para>Powers off the machine,
622 starts the
623 <filename>poweroff.target</filename>
624 unit. This is mostly equivalent to
625 <command>systemctl start
626 poweroff.target</command>.</para></listitem>
627 </varlistentry>
628
629 <varlistentry>
630 <term>SIGRTMIN+5</term>
631
632 <listitem><para>Reboots the machine,
633 starts the
634 <filename>reboot.target</filename>
635 unit. This is mostly equivalent to
636 <command>systemctl start
637 reboot.target</command>.</para></listitem>
160cd5c9
LP
638 </varlistentry>
639 </variablelist>
640 </refsect1>
641
7874bcd6
LP
642 <refsect1>
643 <title>Environment</title>
644
645 <variablelist>
646 <varlistentry>
647 <term><varname>$SYSTEMD_LOG_LEVEL</varname></term>
648 <listitem><para>systemd reads the
649 log level from this environment
436c44a5 650 variable. This can be overridden with
7874bcd6
LP
651 <option>--log-level=</option>.</para></listitem>
652 </varlistentry>
653
654 <varlistentry>
655 <term><varname>$SYSTEMD_LOG_TARGET</varname></term>
656 <listitem><para>systemd reads the
657 log target from this environment
436c44a5 658 variable. This can be overridden with
7874bcd6
LP
659 <option>--log-target=</option>.</para></listitem>
660 </varlistentry>
661
662 <varlistentry>
663 <term><varname>$SYSTEMD_LOG_COLOR</varname></term>
664 <listitem><para>Controls whether
665 systemd highlights important log
436c44a5 666 messages. This can be overridden with
7874bcd6
LP
667 <option>--log-color=</option>.</para></listitem>
668 </varlistentry>
669
670 <varlistentry>
671 <term><varname>$SYSTEMD_LOG_LOCATION</varname></term>
672 <listitem><para>Controls whether
673 systemd prints the code location along
674 with log messages. This can be
436c44a5 675 overridden with
7874bcd6
LP
676 <option>--log-location=</option>.</para></listitem>
677 </varlistentry>
678
679 <varlistentry>
680 <term><varname>$XDG_CONFIG_HOME</varname></term>
681 <term><varname>$XDG_CONFIG_DIRS</varname></term>
682 <term><varname>$XDG_DATA_HOME</varname></term>
683 <term><varname>$XDG_DATA_DIRS</varname></term>
684
685 <listitem><para>The systemd session
686 manager uses these variables in
687 accordance to the <ulink
688 url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
689 Base Directory specification</ulink>
690 to find its configuration.</para></listitem>
691 </varlistentry>
692
693 <varlistentry>
694 <term><varname>$SYSTEMD_UNIT_PATH</varname></term>
695
696 <listitem><para>Controls where systemd
697 looks for unit
698 files.</para></listitem>
699 </varlistentry>
700
701 <varlistentry>
702 <term><varname>$SYSTEMD_SYSVINIT_PATH</varname></term>
703
704 <listitem><para>Controls where systemd
705 looks for SysV init scripts.</para></listitem>
706 </varlistentry>
707
708 <varlistentry>
709 <term><varname>$SYSTEMD_SYSVRCND_PATH</varname></term>
710
711 <listitem><para>Controls where systemd
712 looks for SysV init script runlevel link
713 farms.</para></listitem>
714 </varlistentry>
715
716 <varlistentry>
717 <term><varname>$LISTEN_PID</varname></term>
718 <term><varname>$LISTEN_FDS</varname></term>
719
720 <listitem><para>Set by systemd for
721 supervised processes during
722 socket-based activation. See
723 <citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
724 for more information.
725 </para></listitem>
726 </varlistentry>
727
728 <varlistentry>
729 <term><varname>$NOTIFY_SOCKET</varname></term>
730
731 <listitem><para>Set by systemd for
732 supervised processes for status and
733 start-up completion notification. See
734 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
735 for more information.
736 </para></listitem>
737 </varlistentry>
738 </variablelist>
739 </refsect1>
160cd5c9 740
f3e219a2
LP
741 <refsect1>
742 <title>Kernel Command Line</title>
743
744 <para>When run as system instance systemd parses a few kernel command line arguments:</para>
745
746 <variablelist>
747 <varlistentry>
748 <term><varname>systemd.unit=</varname></term>
749
750 <listitem><para>Overrides the unit to
751 activate on boot. Defaults to
752 <filename>default.target</filename>. This
753 may be used to temporarily boot into a
754 different boot unit, for example
755 <filename>rescue.target</filename> or
756 <filename>emergency.service</filename>. See
757 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
758 for details about these
759 units.</para></listitem>
760 </varlistentry>
761
762 <varlistentry>
763 <term><varname>systemd.log_target=</varname></term>
764 <term><varname>systemd.log_level=</varname></term>
765 <term><varname>systemd.log_color=</varname></term>
766 <term><varname>systemd.log_location=</varname></term>
767
768 <listitem><para>Controls log output,
769 with the same effect as the
770 <varname>$SYSTEMD_LOG_TARGET</varname>, <varname>$SYSTEMD_LOG_LEVEL</varname>, <varname>$SYSTEMD_LOG_COLOR</varname>, <varname>$SYSTEMD_LOG_LOCATION</varname>
771 environment variables described above.</para></listitem>
772 </varlistentry>
773
774 <varlistentry>
775 <term><varname>systemd.dump_core=</varname></term>
776
777 <listitem><para>Takes a boolean
778 argument. If <option>true</option>
779 systemd dumps core when it
780 crashes. Otherwise no core dump is
781 created. Defaults to
782 <option>true</option>.</para></listitem>
783 </varlistentry>
784
785 <varlistentry>
786 <term><varname>systemd.crash_shell=</varname></term>
787
788 <listitem><para>Takes a boolean
789 argument. If <option>true</option>
790 systemd spawns a shell when it
791 crashes. Otherwise no core dump is
792 created. Defaults to
793 <option>false</option>, for security
794 reasons, as the shell is not protected
795 by any password
796 authentication.</para></listitem>
797 </varlistentry>
798
799 <varlistentry>
800 <term><varname>systemd.crash_chvt=</varname></term>
801
802 <listitem><para>Takes an integer
803 argument. If positive systemd
804 activates the specified virtual
805 terminal when it crashes. Defaults to
806 <literal>-1</literal>.</para></listitem>
807 </varlistentry>
808
809 <varlistentry>
810 <term><varname>systemd.show_status=</varname></term>
811
812 <listitem><para>Takes a boolean
813 argument. If <option>true</option>
814 shows terse service status updates on
815 the console during bootup. Defaults to
816 <option>true</option>.</para></listitem>
817 </varlistentry>
818
819 </variablelist>
820 </refsect1>
821
2218198b
LP
822 <refsect1>
823 <title>Sockets and FIFOs</title>
824
825 <variablelist>
826 <varlistentry>
827 <term><filename>@/org/freedesktop/systemd1/notify</filename></term>
828
829 <listitem><para>Daemon status
830 notification socket. This is an AF_UNIX
831 datagram socket in the Linux abstract
832 namespace, and is used to implement
833 the daemon notification logic as
834 implemented by
835 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
836
837 </varlistentry>
838
839 <varlistentry>
840 <term><filename>@/org/freedesktop/systemd1/logger</filename></term>
841
842 <listitem><para>Used internally by the
843 <filename>systemd-logger.service</filename>
844 unit to connect STDOUT and/or STDERR
845 of spawned processes to
846 <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
847 or the kernel log buffer. This is an
848 AF_UNIX stream socket in the Linux
849 abstract namespace.</para></listitem>
850 </varlistentry>
851
852 <varlistentry>
853 <term><filename>@/org/freedesktop/systemd1/private</filename></term>
854
855 <listitem><para>Used internally as
856 communication channel between
857 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
858 and the systemd process. This is an
859 AF_UNIX stream socket in the Linux
860 abstract namespace. This interface is
861 private to systemd and should not be
862 used in external
863 projects.</para></listitem>
864 </varlistentry>
865
866 <varlistentry>
867 <term><filename>/dev/initctl</filename></term>
868
869 <listitem><para>Limited compatibility
870 support for the SysV client interface,
871 as implemented by the
872 <filename>systemd-initctl.service</filename>
873 unit. This is a named pipe in the file
874 system. This interface is obsolete and
875 should not be used in new
876 applications.</para></listitem>
877 </varlistentry>
878 </variablelist>
9e632bf7
LP
879 </refsect1>
880
9e632bf7
LP
881 <refsect1>
882 <title>See Also</title>
883 <para>
7874bcd6
LP
884 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
885 <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
886 <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
887 <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
9e632bf7 888 <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
7874bcd6
LP
889 <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
890 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
891 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
892 <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
9e632bf7
LP
893 </para>
894 </refsect1>
895
896</refentry>