chiark / gitweb /
sd-bus: update peeking into receieved messages, with recent kernel change we need...
[elogind.git] / man / systemctl.xml
1 <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
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="systemctl"
25           xmlns:xi="http://www.w3.org/2001/XInclude">
26
27   <refentryinfo>
28     <title>systemctl</title>
29     <productname>systemd</productname>
30
31     <authorgroup>
32       <author>
33         <contrib>Developer</contrib>
34         <firstname>Lennart</firstname>
35         <surname>Poettering</surname>
36         <email>lennart@poettering.net</email>
37       </author>
38     </authorgroup>
39   </refentryinfo>
40
41   <refmeta>
42     <refentrytitle>systemctl</refentrytitle>
43     <manvolnum>1</manvolnum>
44   </refmeta>
45
46   <refnamediv>
47     <refname>systemctl</refname>
48     <refpurpose>Control the systemd system and service manager</refpurpose>
49   </refnamediv>
50
51   <refsynopsisdiv>
52     <cmdsynopsis>
53       <command>systemctl</command>
54       <arg choice="opt" rep="repeat">OPTIONS</arg>
55       <arg choice="plain">COMMAND</arg>
56       <arg choice="opt" rep="repeat">NAME</arg>
57     </cmdsynopsis>
58   </refsynopsisdiv>
59
60   <refsect1>
61     <title>Description</title>
62
63     <para><command>systemctl</command> may be used to introspect and
64     control the state of the <literal>systemd</literal> system and
65     service manager. Please refer to
66     <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
67     for an introduction into the basic concepts and functionality this
68     tool manages.</para>
69   </refsect1>
70
71   <refsect1>
72     <title>Options</title>
73
74     <para>The following options are understood:</para>
75
76     <variablelist>
77       <varlistentry>
78         <term><option>-t</option></term>
79         <term><option>--type=</option></term>
80
81         <listitem>
82           <para>The argument should be a comma-separated list of unit
83           types such as <option>service</option> and
84           <option>socket</option>.
85           </para>
86
87           <para>If one of the arguments is a unit type, when listing
88           units, limit display to certain unit types. Otherwise, units
89           of all types will be shown.</para>
90
91           <para>As a special case, if one of the arguments is
92           <option>help</option>, a list of allowed values will be
93           printed and the program will exit.</para>
94         </listitem>
95       </varlistentry>
96
97       <varlistentry>
98         <term><option>--state=</option></term>
99
100         <listitem>
101         <para>The argument should be a comma-separated list of unit
102         LOAD, SUB, or ACTIVE states. When listing units, show only
103         those in specified states. Use <option>--state=failed</option>
104         to show only failed units.</para>
105         </listitem>
106       </varlistentry>
107
108       <varlistentry>
109         <term><option>-p</option></term>
110         <term><option>--property=</option></term>
111
112         <listitem>
113           <para>When showing unit/job/manager properties with the
114           <command>show</command> command, limit display to certain
115           properties as specified as argument. If not specified, all
116           set properties are shown. The argument should be a
117           comma-separated list of property names, such as
118           <literal>MainPID</literal>. If specified more than once, all
119           properties with the specified names are shown.</para>
120         </listitem>
121       </varlistentry>
122
123       <varlistentry>
124         <term><option>-a</option></term>
125         <term><option>--all</option></term>
126
127         <listitem>
128           <para>When listing units, show all loaded units, regardless
129           of their state, including inactive units. When showing
130           unit/job/manager properties, show all properties regardless
131           whether they are set or not.</para>
132           <para>To list all units installed on the system, use the
133           <command>list-unit-files</command> command instead.</para>
134         </listitem>
135       </varlistentry>
136
137       <varlistentry>
138         <term><option>-r</option></term>
139         <term><option>--recursive</option></term>
140
141         <listitem>
142           <para>When listing units, also show units of local
143           containers. Units of local containers will be prefixed with
144           the container name, separated by a single colon character
145           (<literal>:</literal>).</para>
146         </listitem>
147       </varlistentry>
148
149       <varlistentry>
150         <term><option>--reverse</option></term>
151
152         <listitem>
153           <para>Show reverse dependencies between units with
154           <command>list-dependencies</command>, i.e. follow
155           dependencies of type <varname>WantedBy=</varname>,
156           <varname>RequiredBy=</varname>,
157           <varname>RequiredByOverrridable=</varname>,
158           <varname>PartOf=</varname>, <varname>BoundBy=</varname>,
159           instead of <varname>Wants=</varname> and similar.
160           </para>
161         </listitem>
162       </varlistentry>
163
164       <varlistentry>
165         <term><option>--after</option></term>
166
167         <listitem>
168           <para>With <command>list-dependencies</command>, show the
169           units that are ordered before the specified unit. In other
170           words, recursively list units following the
171           <varname>After=</varname> dependency.</para>
172
173           <para>Note that any <varname>After=</varname> dependency is
174           automatically mirrored to create a
175           <varname>Before=</varname> dependency. Temporal dependencies
176           may be specified explictly, but are also created implicitly
177           for units which are <varname>WantedBy=</varname> targets
178           (see
179           <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
180           and as a result of other directives (for example
181           <varname>RequiresMountsFor=</varname>). Both explicitly
182           and implicitly introduced dependencies are shown with
183           <command>list-dependencies</command>.</para>
184         </listitem>
185       </varlistentry>
186
187       <varlistentry>
188         <term><option>--before</option></term>
189
190         <listitem>
191           <para>With <command>list-dependencies</command>, show the
192           units that are ordered after the specified unit. In other
193           words, recursively list units following the
194           <varname>Before=</varname> dependency.</para>
195         </listitem>
196       </varlistentry>
197
198       <varlistentry>
199         <term><option>-l</option></term>
200         <term><option>--full</option></term>
201
202         <listitem>
203           <para>Do not ellipsize unit names, process tree entries,
204           journal output, or truncate unit descriptions in the output
205           of <command>status</command>, <command>list-units</command>,
206           <command>list-jobs</command>, and
207           <command>list-timers</command>.</para>
208         </listitem>
209       </varlistentry>
210
211       <varlistentry>
212         <term><option>--show-types</option></term>
213
214         <listitem>
215           <para>When showing sockets, show the type of the socket.</para>
216         </listitem>
217       </varlistentry>
218
219       <varlistentry>
220         <term><option>--job-mode=</option></term>
221
222         <listitem>
223         <para>When queuing a new job, this option controls how to deal with
224         already queued jobs. It takes one of <literal>fail</literal>,
225         <literal>replace</literal>,
226         <literal>replace-irreversibly</literal>,
227         <literal>isolate</literal>,
228         <literal>ignore-dependencies</literal>,
229         <literal>ignore-requirements</literal> or
230         <literal>flush</literal>. Defaults to
231         <literal>replace</literal>, except when the
232         <command>isolate</command> command is used which implies the
233         <literal>isolate</literal> job mode.</para>
234
235         <para>If <literal>fail</literal> is specified and a requested
236         operation conflicts with a pending job (more specifically:
237         causes an already pending start job to be reversed into a stop
238         job or vice versa), cause the operation to fail.</para>
239
240         <para>If <literal>replace</literal> (the default) is
241         specified, any conflicting pending job will be replaced, as
242         necessary.</para>
243
244         <para>If <literal>replace-irreversibly</literal> is specified,
245         operate like <literal>replace</literal>, but also mark the new
246         jobs as irreversible. This prevents future conflicting
247         transactions from replacing these jobs (or even being enqueued
248         while the irreversible jobs are still pending). Irreversible
249         jobs can still be cancelled using the <command>cancel</command>
250         command.</para>
251
252         <para><literal>isolate</literal> is only valid for start
253         operations and causes all other units to be stopped when the
254         specified unit is started. This mode is always used when the
255         <command>isolate</command> command is used.</para>
256
257         <para><literal>flush</literal> will cause all queued jobs to
258         be canceled when the new job is enqueued.</para>
259
260         <para>If <literal>ignore-dependencies</literal> is specified,
261         then all unit dependencies are ignored for this new job and
262         the operation is executed immediately. If passed, no required
263         units of the unit passed will be pulled in, and no ordering
264         dependencies will be honored. This is mostly a debugging and
265         rescue tool for the administrator and should not be used by
266         applications.</para>
267
268         <para><literal>ignore-requirements</literal> is similar to
269         <literal>ignore-dependencies</literal>, but only causes the
270         requirement dependencies to be ignored, the ordering
271         dependencies will still be honoured.</para>
272         </listitem>
273
274       </varlistentry>
275
276       <varlistentry>
277         <term><option>-i</option></term>
278         <term><option>--ignore-inhibitors</option></term>
279
280         <listitem>
281           <para>When system shutdown or a sleep state is requested,
282           ignore inhibitor locks. Applications can establish inhibitor
283           locks to avoid that certain important operations (such as CD
284           burning or suchlike) are interrupted by system shutdown or a
285           sleep state. Any user may take these locks and privileged
286           users may override these locks. If any locks are taken,
287           shutdown and sleep state requests will normally fail
288           (regardless of whether privileged or not) and a list of active locks
289           is printed. However, if <option>--ignore-inhibitors</option>
290           is specified, the locks are ignored and not printed, and the
291           operation attempted anyway, possibly requiring additional
292           privileges.</para>
293         </listitem>
294       </varlistentry>
295
296       <varlistentry>
297         <term><option>-q</option></term>
298         <term><option>--quiet</option></term>
299
300         <listitem>
301           <para>Suppress output to standard output in
302           <command>snapshot</command>,
303           <command>is-active</command>,
304           <command>is-failed</command>,
305           <command>is-enabled</command>,
306           <command>is-system-running</command>,
307           <command>enable</command> and
308         <command>disable</command>.</para>
309         </listitem>
310       </varlistentry>
311
312       <varlistentry>
313         <term><option>--no-block</option></term>
314
315         <listitem>
316           <para>Do not synchronously wait for the requested operation
317           to finish. If this is not specified, the job will be
318           verified, enqueued and <command>systemctl</command> will
319           wait until it is completed. By passing this argument, it is
320           only verified and enqueued.</para>
321         </listitem>
322       </varlistentry>
323
324       <varlistentry>
325         <term><option>--no-legend</option></term>
326
327         <listitem>
328           <para>Do not print the legend, i.e. the column headers and
329           the footer with hints.</para>
330         </listitem>
331       </varlistentry>
332
333       <xi:include href="user-system-options.xml" xpointer="user" />
334       <xi:include href="user-system-options.xml" xpointer="system" />
335
336       <!-- we do not document -failed here, as it has been made
337            redundant by -state=failed, which it predates. To keep
338            things simple we only document the new switch, while
339            keeping the old one around for compatibility only. -->
340
341       <varlistentry>
342         <term><option>--no-wall</option></term>
343
344         <listitem>
345           <para>Do not send wall message before halt, power-off,
346           reboot.</para>
347         </listitem>
348       </varlistentry>
349
350       <varlistentry>
351         <term><option>--global</option></term>
352
353         <listitem>
354           <para>When used with <command>enable</command> and
355           <command>disable</command>, operate on the global user
356           configuration directory, thus enabling or disabling a unit
357           file globally for all future logins of all users.</para>
358         </listitem>
359       </varlistentry>
360
361       <varlistentry>
362         <term><option>--no-reload</option></term>
363
364         <listitem>
365           <para>When used with <command>enable</command> and
366           <command>disable</command>, do not implicitly reload daemon
367           configuration after executing the changes.</para>
368         </listitem>
369       </varlistentry>
370
371       <varlistentry>
372         <term><option>--no-ask-password</option></term>
373
374         <listitem>
375           <para>When used with <command>start</command> and related
376           commands, disables asking for passwords. Background services
377           may require input of a password or passphrase string, for
378           example to unlock system hard disks or cryptographic
379           certificates. Unless this option is specified and the
380           command is invoked from a terminal,
381           <command>systemctl</command> will query the user on the
382           terminal for the necessary secrets. Use this option to
383           switch this behavior off. In this case, the password must be
384           supplied by some other means (for example graphical password
385           agents) or the service might fail. This also disables
386           querying the user for authentication for privileged
387           operations.</para>
388         </listitem>
389
390       </varlistentry>
391
392       <varlistentry>
393         <term><option>--kill-who=</option></term>
394
395         <listitem>
396           <para>When used with <command>kill</command>, choose which
397           processes to send a signal to. Must be one of
398           <option>main</option>, <option>control</option> or
399           <option>all</option> to select whether to kill only the main
400           process, the control process or all processes of the
401           unit. The main process of the unit is the one that defines
402           the life-time of it. A control process of a unit is one that
403           is invoked by the manager to induce state changes of it. For
404           example, all processes started due to the
405           <varname>ExecStartPre=</varname>,
406           <varname>ExecStop=</varname> or
407           <varname>ExecReload=</varname> settings of service units are
408           control processes. Note that there is only one control
409           process per unit at a time, as only one state change is
410           executed at a time. For services of type
411           <varname>Type=forking</varname>, the initial process started
412           by the manager for <varname>ExecStart=</varname> is a
413           control process, while the process ultimately forked off by
414           that one is then considered the main process of the unit (if
415           it can be determined). This is different for service units
416           of other types, where the process forked off by the manager
417           for <varname>ExecStart=</varname> is always the main process
418           itself. A service unit consists of zero or one main process,
419           zero or one control process plus any number of additional
420           processes. Not all unit types manage processes of these
421           types however. For example, for mount units, control processes
422           are defined (which are the invocations of
423           <filename>/usr/bin/mount</filename> and
424           <filename>/usr/bin/umount</filename>), but no main process
425           is defined. If omitted, defaults to
426           <option>all</option>.</para>
427         </listitem>
428
429       </varlistentry>
430
431       <varlistentry>
432         <term><option>-s</option></term>
433         <term><option>--signal=</option></term>
434
435         <listitem>
436           <para>When used with <command>kill</command>, choose which
437           signal to send to selected processes. Must be one of the
438           well known signal specifiers such as <constant>SIGTERM</constant>, <constant>SIGINT</constant> or
439           <constant>SIGSTOP</constant>. If omitted, defaults to
440           <option>SIGTERM</option>.</para>
441         </listitem>
442       </varlistentry>
443
444       <varlistentry>
445         <term><option>-f</option></term>
446         <term><option>--force</option></term>
447
448         <listitem>
449           <para>When used with <command>enable</command>, overwrite
450           any existing conflicting symlinks.</para>
451
452           <para>When used with <command>halt</command>,
453           <command>poweroff</command>, <command>reboot</command> or
454           <command>kexec</command>, execute the selected operation
455           without shutting down all units. However, all processes will
456           be killed forcibly and all file systems are unmounted or
457           remounted read-only. This is hence a drastic but relatively
458           safe option to request an immediate reboot. If
459           <option>--force</option> is specified twice for these
460           operations, they will be executed immediately without
461           terminating any processes or unmounting any file
462           systems. Warning: specifying <option>--force</option> twice
463           with any of these operations might result in data
464           loss.</para>
465         </listitem>
466       </varlistentry>
467
468       <varlistentry>
469         <term><option>--root=</option></term>
470
471         <listitem>
472           <para>When used with
473           <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
474           (and related commands), use alternative root path when
475           looking for unit files.</para>
476         </listitem>
477
478       </varlistentry>
479
480       <varlistentry>
481         <term><option>--runtime</option></term>
482
483         <listitem>
484           <para>When used with <command>enable</command>,
485           <command>disable</command>,
486           (and related commands), make changes only temporarily, so
487           that they are lost on the next reboot. This will have the
488           effect that changes are not made in subdirectories of
489           <filename>/etc</filename> but in <filename>/run</filename>,
490           with identical immediate effects, however, since the latter
491           is lost on reboot, the changes are lost too.</para>
492
493           <para>Similarly, when used with
494           <command>set-property</command>, make changes only
495           temporarily, so that they are lost on the next
496           reboot.</para>
497         </listitem>
498       </varlistentry>
499
500       <varlistentry>
501         <term><option>--preset-mode=</option></term>
502
503         <listitem>
504           <para>Takes one of <literal>full</literal> (the default),
505           <literal>enable-only</literal>,
506           <literal>disable-only</literal>. When used with the
507           <command>preset</command> or <command>preset-all</command>
508           commands, controls whether units shall be disabled and
509           enabled according to the preset rules, or only enabled, or
510           only disabled.</para>
511         </listitem>
512       </varlistentry>
513
514       <varlistentry>
515         <term><option>-n</option></term>
516         <term><option>--lines=</option></term>
517
518         <listitem>
519           <para>When used with <command>status</command>, controls the
520           number of journal lines to show, counting from the most
521           recent ones. Takes a positive integer argument. Defaults to
522           10.</para>
523         </listitem>
524       </varlistentry>
525
526       <varlistentry>
527         <term><option>-o</option></term>
528         <term><option>--output=</option></term>
529
530         <listitem>
531           <para>When used with <command>status</command>, controls the
532           formatting of the journal entries that are shown. For the
533           available choices, see
534           <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
535           Defaults to <literal>short</literal>.</para>
536         </listitem>
537       </varlistentry>
538
539       <varlistentry>
540         <term><option>--plain</option></term>
541
542         <listitem>
543           <para>When used with <command>list-dependencies</command>,
544           the output is printed as a list instead of a tree.</para>
545         </listitem>
546       </varlistentry>
547
548       <xi:include href="user-system-options.xml" xpointer="host" />
549       <xi:include href="user-system-options.xml" xpointer="machine" />
550
551       <xi:include href="standard-options.xml" xpointer="help" />
552       <xi:include href="standard-options.xml" xpointer="version" />
553       <xi:include href="standard-options.xml" xpointer="no-pager" />
554     </variablelist>
555   </refsect1>
556
557   <refsect1>
558     <title>Commands</title>
559
560     <para>The following commands are understood:</para>
561
562     <refsect2>
563       <title>Unit Commands</title>
564
565       <variablelist>
566         <varlistentry>
567           <term><command>list-units <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
568
569           <listitem>
570             <para>List known units (subject to limitations specified
571             with <option>-t</option>). If one or more
572             <replaceable>PATTERN</replaceable>s are specified, only
573             units matching one of them are shown.</para>
574
575             <para>This is the default command.</para>
576           </listitem>
577         </varlistentry>
578
579         <varlistentry>
580           <term><command>list-sockets <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
581
582           <listitem>
583             <para>List socket units ordered by listening address.
584             If one or more <replaceable>PATTERN</replaceable>s are
585             specified, only socket units matching one of them are
586             shown. Produces output similar to
587             <programlisting>
588 LISTEN           UNIT                        ACTIVATES
589 /dev/initctl     systemd-initctl.socket      systemd-initctl.service
590 ...
591 [::]:22          sshd.socket                 sshd.service
592 kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
593
594 5 sockets listed.</programlisting>
595             Note: because the addresses might contains spaces, this output
596             is not suitable for programmatic consumption.
597             </para>
598
599             <para>See also the options <option>--show-types</option>,
600             <option>--all</option>, and <option>--state=</option>.</para>
601           </listitem>
602         </varlistentry>
603
604         <varlistentry>
605           <term><command>list-timers <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
606
607           <listitem>
608             <para>List timer units ordered by the time they elapse
609             next. If one or more <replaceable>PATTERN</replaceable>s
610             are specified, only units matching one of them are shown.
611             </para>
612
613             <para>See also the options <option>--all</option> and
614             <option>--state=</option>.</para>
615           </listitem>
616         </varlistentry>
617
618         <varlistentry>
619           <term><command>start <replaceable>PATTERN</replaceable>...</command></term>
620
621           <listitem>
622             <para>Start (activate) one or more units specified on the
623             command line.</para>
624
625             <para>Note that glob patterns operate on a list of currently
626             loaded units. Units which are not active and are not in a
627             failed state usually are not loaded, and would not be
628             matched by any pattern. In addition, in case of
629             instantiated units, systemd is often unaware of the
630             instance name until the instance has been started. Therefore,
631             using glob patterns with <command>start</command>
632             has limited usefulness.</para>
633           </listitem>
634         </varlistentry>
635         <varlistentry>
636           <term><command>stop <replaceable>PATTERN</replaceable>...</command></term>
637
638           <listitem>
639             <para>Stop (deactivate) one or more units specified on the
640             command line.</para>
641           </listitem>
642         </varlistentry>
643         <varlistentry>
644           <term><command>reload <replaceable>PATTERN</replaceable>...</command></term>
645
646           <listitem>
647             <para>Asks all units listed on the command line to reload
648             their configuration. Note that this will reload the
649             service-specific configuration, not the unit configuration
650             file of systemd. If you want systemd to reload the
651             configuration file of a unit, use the
652             <command>daemon-reload</command> command. In other words:
653             for the example case of Apache, this will reload Apache's
654             <filename>httpd.conf</filename> in the web server, not the
655             <filename>apache.service</filename> systemd unit
656             file.</para>
657
658             <para>This command should not be confused with the
659             <command>daemon-reload</command> command.</para>
660           </listitem>
661
662         </varlistentry>
663         <varlistentry>
664           <term><command>restart <replaceable>PATTERN</replaceable>...</command></term>
665
666           <listitem>
667             <para>Restart one or more units specified on the command
668             line. If the units are not running yet, they will be
669             started.</para>
670           </listitem>
671         </varlistentry>
672         <varlistentry>
673           <term><command>try-restart <replaceable>PATTERN</replaceable>...</command></term>
674
675           <listitem>
676             <para>Restart one or more units specified on the command
677             line if the units are running. This does nothing if units are not
678             running.  Note that, for compatibility with Red Hat init
679             scripts, <command>condrestart</command> is equivalent to this
680             command.</para>
681           </listitem>
682         </varlistentry>
683         <varlistentry>
684           <term><command>reload-or-restart <replaceable>PATTERN</replaceable>...</command></term>
685
686           <listitem>
687             <para>Reload one or more units if they support it. If not,
688             restart them instead. If the units are not running yet, they
689             will be started.</para>
690           </listitem>
691         </varlistentry>
692         <varlistentry>
693           <term><command>reload-or-try-restart <replaceable>PATTERN</replaceable>...</command></term>
694
695           <listitem>
696             <para>Reload one or more units if they support it. If not,
697             restart them instead. This does nothing if the units are not
698             running. Note that, for compatibility with SysV init scripts,
699             <command>force-reload</command> is equivalent to this
700             command.</para>
701           </listitem>
702         </varlistentry>
703         <varlistentry>
704           <term><command>isolate <replaceable>NAME</replaceable></command></term>
705
706           <listitem>
707             <para>Start the unit specified on the command line and its
708             dependencies and stop all others.</para>
709
710             <para>This is similar to changing the runlevel in a
711             traditional init system. The <command>isolate</command>
712             command will immediately stop processes that are not enabled
713             in the new unit, possibly including the graphical
714             environment or terminal you are currently using.</para>
715
716             <para>Note that this is allowed only on units where
717             <option>AllowIsolate=</option> is enabled. See
718             <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
719             for details.</para>
720           </listitem>
721         </varlistentry>
722         <varlistentry>
723           <term><command>kill <replaceable>PATTERN</replaceable>...</command></term>
724
725           <listitem>
726             <para>Send a signal to one or more processes of the
727             unit. Use <option>--kill-who=</option> to select which
728             process to kill. Use <option>--signal=</option> to select
729             the signal to send.</para>
730           </listitem>
731         </varlistentry>
732         <varlistentry>
733           <term><command>is-active <replaceable>PATTERN</replaceable>...</command></term>
734
735           <listitem>
736             <para>Check whether any of the specified units are active
737             (i.e. running). Returns an exit code
738             <constant>0</constant> if at least one is active, or
739             non-zero otherwise. Unless <option>--quiet</option> is
740             specified, this will also print the current unit state to
741             standard output.</para>
742           </listitem>
743         </varlistentry>
744         <varlistentry>
745           <term><command>is-failed <replaceable>PATTERN</replaceable>...</command></term>
746
747           <listitem>
748             <para>Check whether any of the specified units are in a
749             "failed" state. Returns an exit code
750             <constant>0</constant> if at least one has failed,
751             non-zero otherwise. Unless <option>--quiet</option> is
752             specified, this will also print the current unit state to
753             standard output.</para>
754           </listitem>
755         </varlistentry>
756         <varlistentry>
757           <term><command>status</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...]</optional></term>
758
759           <listitem>
760             <para>Show terse runtime status information about one or
761             more units, followed by most recent log data from the
762             journal. If no units are specified, show system status. If
763             combined with <option>--all</option>, also show the status of
764             all units (subject to limitations specified with
765             <option>-t</option>). If a PID is passed, show information
766             about the unit the process belongs to.</para>
767
768             <para>This function is intended to generate human-readable
769             output. If you are looking for computer-parsable output,
770             use <command>show</command> instead. By default this
771             function only shows 10 lines of output and ellipsizes
772             lines to fit in the terminal window. This can be changes
773             with <option>--lines</option> and <option>--full</option>,
774             see above. In addition, <command>journalctl
775             --unit=<replaceable>NAME</replaceable></command> or
776             <command>journalctl
777             --user-unit=<replaceable>NAME</replaceable></command> use
778             a similar filter for messages and might be more
779             convenient.
780             </para>
781           </listitem>
782         </varlistentry>
783         <varlistentry>
784           <term><command>show</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>JOB</replaceable>...</optional></term>
785
786           <listitem>
787             <para>Show properties of one or more units, jobs, or the
788             manager itself. If no argument is specified, properties of
789             the manager will be shown. If a unit name is specified,
790             properties of the unit is shown, and if a job id is
791             specified, properties of the job is shown. By default, empty
792             properties are suppressed. Use <option>--all</option> to
793             show those too. To select specific properties to show, use
794             <option>--property=</option>. This command is intended to be
795             used whenever computer-parsable output is required. Use
796             <command>status</command> if you are looking for formatted
797             human-readable output.</para>
798           </listitem>
799         </varlistentry>
800         <varlistentry>
801           <term><command>cat <replaceable>PATTERN</replaceable>...</command></term>
802
803           <listitem>
804             <para>Show backing files of one or more units. Prints the
805             "fragment" and "drop-ins" (source files) of units. Each
806             file is preceded by a comment which includes the file
807             name.</para>
808           </listitem>
809         </varlistentry>
810         <varlistentry>
811           <term><command>set-property <replaceable>NAME</replaceable> <replaceable>ASSIGNMENT</replaceable>...</command></term>
812
813           <listitem>
814             <para>Set the specified unit properties at runtime where
815             this is supported. This allows changing configuration
816             parameter properties such as resource control settings at
817             runtime. Not all properties may be changed at runtime, but
818             many resource control settings (primarily those in
819             <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
820             may. The changes are applied instantly, and stored on disk
821             for future boots, unless <option>--runtime</option> is
822             passed, in which case the settings only apply until the
823             next reboot. The syntax of the property assignment follows
824             closely the syntax of assignments in unit files.</para>
825
826             <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para>
827
828             <para>Note that this command allows changing multiple
829             properties at the same time, which is preferable over
830             setting them individually. Like unit file configuration
831             settings, assigning the empty list to list parameters will
832             reset the list.</para>
833           </listitem>
834         </varlistentry>
835
836         <varlistentry>
837           <term><command>help <replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...</command></term>
838
839           <listitem>
840             <para>Show manual pages for one or more units, if
841             available. If a PID is given, the manual pages for the unit
842             the process belongs to are shown.</para>
843           </listitem>
844         </varlistentry>
845
846         <varlistentry>
847           <term><command>reset-failed [<replaceable>PATTERN</replaceable>...]</command></term>
848
849           <listitem>
850             <para>Reset the <literal>failed</literal> state of the
851             specified units, or if no unit name is passed, reset the state of all
852             units. When a unit fails in some way (i.e. process exiting
853             with non-zero error code, terminating abnormally or timing
854             out), it will automatically enter the
855             <literal>failed</literal> state and its exit code and status
856             is recorded for introspection by the administrator until the
857             service is restarted or reset with this command.</para>
858           </listitem>
859         </varlistentry>
860
861         <varlistentry>
862           <term>
863             <command>list-dependencies</command>
864             <optional><replaceable>NAME</replaceable></optional>
865           </term>
866
867           <listitem>
868             <para>Shows units required and wanted by the specified
869             unit. This recursively lists units following the
870             <varname>Requires=</varname>,
871             <varname>RequiresOverridable=</varname>,
872             <varname>Requisite=</varname>,
873             <varname>RequisiteOverridable=</varname>,
874             <varname>Wants=</varname>, <varname>BindsTo=</varname>
875             dependencies. If no unit is specified,
876             <filename>default.target</filename> is implied.</para>
877
878             <para>By default, only target units are recursively
879             expanded. When <option>--all</option> is passed, all other
880             units are recursively expanded as well.</para>
881
882             <para>Options <option>--reverse</option>,
883             <option>--after</option>, <option>--before</option>
884             may be used to change what types of dependencies
885             are shown.</para>
886           </listitem>
887         </varlistentry>
888       </variablelist>
889     </refsect2>
890
891     <refsect2>
892       <title>Unit File Commands</title>
893
894       <variablelist>
895         <varlistentry>
896           <term><command>list-unit-files <optional><replaceable>PATTERN...</replaceable></optional></command></term>
897
898           <listitem>
899             <para>List installed unit files. If one or more
900             <replaceable>PATTERN</replaceable>s are specified, only
901             units whose filename (just the last component of the path)
902             matches one of them are shown.</para>
903           </listitem>
904         </varlistentry>
905
906         <varlistentry>
907           <term><command>enable <replaceable>NAME</replaceable>...</command></term>
908
909           <listitem>
910             <para>Enable one or more unit files or unit file instances,
911             as specified on the command line. This will create a number
912             of symlinks as encoded in the <literal>[Install]</literal>
913             sections of the unit files. After the symlinks have been
914             created, the systemd configuration is reloaded (in a way that
915             is equivalent to <command>daemon-reload</command>) to ensure
916             the changes are taken into account immediately. Note that
917             this does <emphasis>not</emphasis> have the effect of also
918             starting any of the units being enabled. If this
919             is desired, a separate <command>start</command> command must
920             be invoked for the unit. Also note that in case of instance
921             enablement, symlinks named the same as instances are created in
922             the install location, however they all point to the same
923             template unit file.</para>
924
925             <para>This command will print the actions executed. This
926             output may be suppressed by passing <option>--quiet</option>.
927             </para>
928
929             <para>Note that this operation creates only the suggested
930             symlinks for the units. While this command is the
931             recommended way to manipulate the unit configuration
932             directory, the administrator is free to make additional
933             changes manually by placing or removing symlinks in the
934             directory. This is particularly useful to create
935             configurations that deviate from the suggested default
936             installation. In this case, the administrator must make sure
937             to invoke <command>daemon-reload</command> manually as
938             necessary to ensure the changes are taken into account.
939             </para>
940
941             <para>Enabling units should not be confused with starting
942             (activating) units, as done by the <command>start</command>
943             command. Enabling and starting units is orthogonal: units
944             may be enabled without being started and started without
945             being enabled. Enabling simply hooks the unit into various
946             suggested places (for example, so that the unit is
947             automatically started on boot or when a particular kind of
948             hardware is plugged in). Starting actually spawns the daemon
949             process (in case of service units), or binds the socket (in
950             case of socket units), and so on.</para>
951
952             <para>Depending on whether <option>--system</option>,
953             <option>--user</option>, <option>--runtime</option>,
954             or <option>--global</option> is specified, this enables the unit
955             for the system, for the calling user only, for only this boot of
956             the system, or for all future logins of all users, or only this
957             boot.  Note that in the last case, no systemd daemon
958             configuration is reloaded.</para>
959
960             <para>Using <command>enable</command> on masked units
961             results in an error.</para>
962           </listitem>
963         </varlistentry>
964
965         <varlistentry>
966           <term><command>disable <replaceable>NAME</replaceable>...</command></term>
967
968           <listitem>
969             <para>Disables one or more units. This removes all symlinks
970             to the specified unit files from the unit configuration
971             directory, and hence undoes the changes made by
972             <command>enable</command>. Note however that this removes
973             all symlinks to the unit files (i.e. including manual
974             additions), not just those actually created by
975             <command>enable</command>. This call implicitly reloads the
976             systemd daemon configuration after completing the disabling
977             of the units. Note that this command does not implicitly
978             stop the units that are being disabled. If this is desired,
979             an additional <command>stop</command> command should be
980             executed afterwards.</para>
981
982             <para>This command will print the actions executed. This
983             output may be suppressed by passing <option>--quiet</option>.
984             </para>
985
986             <para>This command honors <option>--system</option>,
987             <option>--user</option>, <option>--runtime</option> and
988             <option>--global</option> in a similar way as
989             <command>enable</command>.</para>
990           </listitem>
991         </varlistentry>
992
993         <varlistentry>
994           <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
995
996           <listitem>
997             <para>Checks whether any of the specified unit files are
998             enabled (as with <command>enable</command>). Returns an
999             exit code of 0 if at least one is enabled, non-zero
1000             otherwise. Prints the current enable status (see table).
1001             To suppress this output, use <option>--quiet</option>.
1002             </para>
1003
1004             <table>
1005               <title>
1006                 <command>is-enabled</command> output
1007               </title>
1008
1009               <tgroup cols='3'>
1010                 <thead>
1011                   <row>
1012                     <entry>Printed string</entry>
1013                     <entry>Meaning</entry>
1014                     <entry>Return value</entry>
1015                   </row>
1016                 </thead>
1017                 <tbody>
1018                   <row>
1019                     <entry><literal>enabled</literal></entry>
1020                     <entry morerows='1'>Enabled through a symlink in <filename>.wants</filename> directory (permanently or just in <filename>/run</filename>).</entry>
1021                     <entry morerows='1'>0</entry>
1022                   </row>
1023                   <row>
1024                     <entry><literal>enabled-runtime</literal></entry>
1025                   </row>
1026                   <row>
1027                     <entry><literal>linked</literal></entry>
1028                     <entry morerows='1'>Made available through a symlink to the unit file (permanently or just in <filename>/run</filename>).</entry>
1029                     <entry morerows='1'>1</entry>
1030                   </row>
1031                   <row>
1032                     <entry><literal>linked-runtime</literal></entry>
1033                   </row>
1034                   <row>
1035                     <entry><literal>masked</literal></entry>
1036                     <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>).</entry>
1037                     <entry morerows='1'>1</entry>
1038                   </row>
1039                   <row>
1040                     <entry><literal>masked-runtime</literal></entry>
1041                   </row>
1042                   <row>
1043                     <entry><literal>static</literal></entry>
1044                     <entry>Unit file is not enabled, and has no provisions for enabling in the <literal>[Install]</literal> section.</entry>
1045                     <entry>0</entry>
1046                   </row>
1047                   <row>
1048                     <entry><literal>indirect</literal></entry>
1049                     <entry>Unit file itself is not enabled, but it has a non-empty <varname>Also=</varname> setting in the <literal>[Install]</literal> section, listing other unit files that might be enabled.</entry>
1050                     <entry>0</entry>
1051                   </row>
1052                   <row>
1053                     <entry><literal>disabled</literal></entry>
1054                     <entry>Unit file is not enabled.</entry>
1055                     <entry>1</entry>
1056                   </row>
1057                 </tbody>
1058               </tgroup>
1059             </table>
1060
1061           </listitem>
1062         </varlistentry>
1063
1064         <varlistentry>
1065           <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
1066
1067           <listitem>
1068             <para>Reenable one or more unit files, as specified on the
1069             command line. This is a combination of
1070             <command>disable</command> and <command>enable</command> and
1071             is useful to reset the symlinks a unit is enabled with to
1072             the defaults configured in the <literal>[Install]</literal>
1073             section of the unit file.</para>
1074           </listitem>
1075         </varlistentry>
1076
1077         <varlistentry>
1078           <term><command>preset <replaceable>NAME</replaceable>...</command></term>
1079
1080           <listitem>
1081             <para>Reset one or more unit files, as specified on the
1082             command line, to the defaults configured in the preset
1083             policy files. This has the same effect as
1084             <command>disable</command> or <command>enable</command>,
1085             depending how the unit is listed in the preset files.</para>
1086
1087             <para>Use <option>--preset-mode=</option> to control
1088             whether units shall be enabled and disabled, or only
1089             enabled, or only disabled.</para>
1090
1091             <para>For more information on the preset policy format,
1092             see
1093             <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
1094             For more information on the concept of presets, please
1095             consult the <ulink
1096             url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
1097             document.</para>
1098           </listitem>
1099         </varlistentry>
1100
1101         <varlistentry>
1102           <term><command>preset-all</command></term>
1103
1104           <listitem>
1105             <para>Resets all installed unit files to the defaults
1106             configured in the preset policy file (see above).</para>
1107
1108             <para>Use <option>--preset-mode=</option> to control
1109             whether units shall be enabled and disabled, or only
1110             enabled, or only disabled.</para>
1111           </listitem>
1112         </varlistentry>
1113
1114         <varlistentry>
1115           <term><command>mask <replaceable>NAME</replaceable>...</command></term>
1116
1117           <listitem>
1118             <para>Mask one or more unit files, as specified on the
1119             command line. This will link these units to
1120             <filename>/dev/null</filename>, making it impossible to
1121             start them. This is a stronger version of
1122             <command>disable</command>, since it prohibits all kinds of
1123             activation of the unit, including enablement and manual
1124             activation. Use this option with care. This honors the
1125             <option>--runtime</option> option to only mask temporarily
1126             until the next reboot of the system.</para>
1127           </listitem>
1128         </varlistentry>
1129
1130         <varlistentry>
1131           <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
1132
1133           <listitem>
1134             <para>Unmask one or more unit files, as specified on the
1135             command line. This will undo the effect of
1136             <command>mask</command>.</para>
1137           </listitem>
1138         </varlistentry>
1139
1140         <varlistentry>
1141           <term><command>add-wants <replaceable>TARGET</replaceable>
1142           <replaceable>NAME</replaceable>...</command></term>
1143           <term><command>add-requires <replaceable>TARGET</replaceable>
1144           <replaceable>NAME</replaceable>...</command></term>
1145
1146           <listitem>
1147             <para>Adds <literal>Wants=</literal> resp. <literal>Requires=</literal>
1148             dependency to the specified <replaceable>TARGET</replaceable> for
1149             one or more units. </para>
1150
1151             <para>This command honors <option>--system</option>,
1152             <option>--user</option>, <option>--runtime</option> and
1153             <option>--global</option> in a similar way as
1154             <command>enable</command>.</para>
1155
1156           </listitem>
1157         </varlistentry>
1158
1159         <varlistentry>
1160           <term><command>link <replaceable>FILENAME</replaceable>...</command></term>
1161
1162           <listitem>
1163             <para>Link a unit file that is not in the unit file search
1164             paths into the unit file search path. This requires an
1165             absolute path to a unit file. The effect of this can be
1166             undone with <command>disable</command>. The effect of this
1167             command is that a unit file is available for
1168             <command>start</command> and other commands although it
1169             is not installed directly in the unit search path.</para>
1170           </listitem>
1171         </varlistentry>
1172
1173         <varlistentry>
1174           <term><command>get-default</command></term>
1175
1176           <listitem>
1177             <para>Get the default target specified
1178             via <filename>default.target</filename> link.</para>
1179           </listitem>
1180         </varlistentry>
1181
1182         <varlistentry>
1183           <term><command>set-default <replaceable>NAME</replaceable></command></term>
1184
1185           <listitem>
1186             <para>Set the default target to boot into. Command links
1187             <filename>default.target</filename> to the given unit.</para>
1188           </listitem>
1189         </varlistentry>
1190       </variablelist>
1191     </refsect2>
1192
1193     <refsect2>
1194       <title>Machine Commands</title>
1195
1196       <variablelist>
1197         <varlistentry>
1198           <term><command>list-machines <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
1199
1200           <listitem>
1201             <para>List the host and all running local containers with
1202             their state. If one or more
1203             <replaceable>PATTERN</replaceable>s are specified, only
1204             containers matching one of them are shown.
1205             </para>
1206           </listitem>
1207         </varlistentry>
1208       </variablelist>
1209     </refsect2>
1210
1211     <refsect2>
1212       <title>Job Commands</title>
1213
1214       <variablelist>
1215         <varlistentry>
1216           <term><command>list-jobs <optional><replaceable>PATTERN...</replaceable></optional></command></term>
1217
1218           <listitem>
1219             <para>List jobs that are in progress. If one or more
1220             <replaceable>PATTERN</replaceable>s are specified, only
1221             jobs for units matching one of them are shown.</para>
1222           </listitem>
1223         </varlistentry>
1224         <varlistentry>
1225           <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
1226
1227           <listitem>
1228             <para>Cancel one or more jobs specified on the command line
1229             by their numeric job IDs. If no job ID is specified, cancel
1230             all pending jobs.</para>
1231           </listitem>
1232         </varlistentry>
1233       </variablelist>
1234     </refsect2>
1235
1236     <refsect2>
1237       <title>Snapshot Commands</title>
1238
1239       <variablelist>
1240         <varlistentry>
1241           <term><command>snapshot <optional><replaceable>NAME</replaceable></optional></command></term>
1242
1243           <listitem>
1244             <para>Create a snapshot. If a snapshot name is specified,
1245             the new snapshot will be named after it. If none is
1246             specified, an automatic snapshot name is generated. In
1247             either case, the snapshot name used is printed to standard
1248             output, unless <option>--quiet</option> is specified.
1249             </para>
1250
1251             <para>A snapshot refers to a saved state of the systemd
1252             manager. It is implemented itself as a unit that is
1253             generated dynamically with this command and has dependencies
1254             on all units active at the time. At a later time, the user
1255             may return to this state by using the
1256             <command>isolate</command> command on the snapshot unit.
1257             </para>
1258
1259             <para>Snapshots are only useful for saving and restoring
1260             which units are running or are stopped, they do not
1261             save/restore any other state. Snapshots are dynamic and lost
1262             on reboot.</para>
1263           </listitem>
1264         </varlistentry>
1265         <varlistentry>
1266           <term><command>delete <replaceable>PATTERN</replaceable>...</command></term>
1267
1268           <listitem>
1269             <para>Remove a snapshot previously created with
1270             <command>snapshot</command>.</para>
1271           </listitem>
1272         </varlistentry>
1273       </variablelist>
1274     </refsect2>
1275
1276     <refsect2>
1277       <title>Environment Commands</title>
1278
1279       <variablelist>
1280         <varlistentry>
1281           <term><command>show-environment</command></term>
1282
1283           <listitem>
1284             <para>Dump the systemd manager environment block. The
1285             environment block will be dumped in straight-forward form
1286             suitable for sourcing into a shell script. This environment
1287             block will be passed to all processes the manager
1288             spawns.</para>
1289           </listitem>
1290         </varlistentry>
1291         <varlistentry>
1292           <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
1293
1294           <listitem>
1295             <para>Set one or more systemd manager environment variables,
1296             as specified on the command line.</para>
1297           </listitem>
1298         </varlistentry>
1299         <varlistentry>
1300           <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
1301
1302           <listitem>
1303             <para>Unset one or more systemd manager environment
1304             variables. If only a variable name is specified, it will be
1305             removed regardless of its value. If a variable and a value
1306             are specified, the variable is only removed if it has the
1307             specified value.</para>
1308           </listitem>
1309         </varlistentry>
1310         <varlistentry>
1311           <term><command>import-environment <replaceable>VARIABLE</replaceable>...</command></term>
1312
1313           <listitem>
1314             <para>Import all, one or more environment variables set on
1315             the client into the systemd manager environment block. If
1316             no arguments are passed, the entire environment block is
1317             imported. Otherwise, a list of one or more environment
1318             variable names should be passed, whose client-side values
1319             are then imported into the manager's environment
1320             block.</para>
1321           </listitem>
1322         </varlistentry>
1323       </variablelist>
1324     </refsect2>
1325
1326     <refsect2>
1327       <title>Manager Lifecycle Commands</title>
1328
1329       <variablelist>
1330         <varlistentry>
1331           <term><command>daemon-reload</command></term>
1332
1333           <listitem>
1334             <para>Reload systemd manager configuration. This will reload
1335             all unit files and recreate the entire dependency
1336             tree. While the daemon is being reloaded, all sockets systemd
1337             listens on behalf of user configuration will stay
1338             accessible.</para> <para>This command should not be confused
1339             with the <command>reload</command> command.</para>
1340           </listitem>
1341         </varlistentry>
1342         <varlistentry>
1343           <term><command>daemon-reexec</command></term>
1344
1345           <listitem>
1346             <para>Reexecute the systemd manager. This will serialize the
1347             manager state, reexecute the process and deserialize the
1348             state again. This command is of little use except for
1349             debugging and package upgrades. Sometimes, it might be
1350             helpful as a heavy-weight <command>daemon-reload</command>.
1351             While the daemon is being reexecuted, all sockets systemd listening
1352             on behalf of user configuration will stay accessible.
1353             </para>
1354           </listitem>
1355         </varlistentry>
1356       </variablelist>
1357     </refsect2>
1358
1359     <refsect2>
1360       <title>System Commands</title>
1361
1362       <variablelist>
1363         <varlistentry>
1364           <term><command>is-system-running</command></term>
1365
1366           <listitem>
1367             <para>Checks whether the system is operational. This
1368             returns success when the system is fully up and running,
1369             meaning not in startup, shutdown or maintenance
1370             mode. Failure is returned otherwise. In addition, the
1371             current state is printed in a short string to standard
1372             output, see table below. Use <option>--quiet</option> to
1373             suppress this output.</para>
1374
1375             <table>
1376               <title>Manager Operational States</title>
1377               <tgroup cols='2'>
1378                 <colspec colname='name' />
1379                 <colspec colname='description' />
1380                 <thead>
1381                   <row>
1382                     <entry>Name</entry>
1383                     <entry>Description</entry>
1384                   </row>
1385                 </thead>
1386                 <tbody>
1387                   <row>
1388                     <entry><varname>initializing</varname></entry>
1389                     <entry><para>Early bootup, before
1390                     <filename>basic.target</filename> is reached
1391                     or the <varname>maintenance</varname> state entered.
1392                     </para></entry>
1393                   </row>
1394                   <row>
1395                     <entry><varname>starting</varname></entry>
1396                     <entry><para>Late bootup, before the job queue
1397                     becomes idle for the first time, or one of the
1398                     rescue targets are reached.</para></entry>
1399                   </row>
1400                   <row>
1401                     <entry><varname>running</varname></entry>
1402                     <entry><para>The system is fully
1403                     operational.</para></entry>
1404                   </row>
1405                   <row>
1406                     <entry><varname>degraded</varname></entry>
1407                     <entry><para>The system is operational but one or more
1408                     units failed.</para></entry>
1409                   </row>
1410                   <row>
1411                     <entry><varname>maintenance</varname></entry>
1412                     <entry><para>The rescue or emergency target is
1413                     active.</para></entry>
1414                   </row>
1415                   <row>
1416                     <entry><varname>stopping</varname></entry>
1417                     <entry><para>The manager is shutting
1418                     down.</para></entry>
1419                   </row>
1420                 </tbody>
1421               </tgroup>
1422             </table>
1423           </listitem>
1424         </varlistentry>
1425
1426         <varlistentry>
1427           <term><command>default</command></term>
1428
1429           <listitem>
1430             <para>Enter default mode. This is mostly equivalent to
1431             <command>isolate default.target</command>.</para>
1432           </listitem>
1433         </varlistentry>
1434
1435         <varlistentry>
1436           <term><command>rescue</command></term>
1437
1438           <listitem>
1439             <para>Enter rescue mode. This is mostly equivalent to
1440             <command>isolate rescue.target</command>, but also prints a
1441             wall message to all users.</para>
1442           </listitem>
1443         </varlistentry>
1444         <varlistentry>
1445           <term><command>emergency</command></term>
1446
1447           <listitem>
1448             <para>Enter emergency mode. This is mostly equivalent to
1449             <command>isolate emergency.target</command>, but also prints
1450             a wall message to all users.</para>
1451           </listitem>
1452         </varlistentry>
1453         <varlistentry>
1454           <term><command>halt</command></term>
1455
1456           <listitem>
1457             <para>Shut down and halt the system. This is mostly equivalent to
1458             <command>start halt.target --irreversible</command>, but also
1459             prints a wall message to all users.  If combined with
1460             <option>--force</option>, shutdown of all running services is
1461             skipped, however all processes are killed and all file
1462             systems are unmounted or mounted read-only, immediately
1463             followed by the system halt.  If <option>--force</option> is
1464             specified twice, the operation is immediately executed
1465             without terminating any processes or unmounting any file
1466             systems. This may result in data loss.</para>
1467           </listitem>
1468         </varlistentry>
1469         <varlistentry>
1470           <term><command>poweroff</command></term>
1471
1472           <listitem>
1473             <para>Shut down and power-off the system. This is mostly
1474             equivalent to <command>start poweroff.target --irreversible</command>,
1475             but also prints a wall message to all users. If combined with
1476             <option>--force</option>, shutdown of all running services is
1477             skipped, however all processes are killed and all file
1478             systems are unmounted or mounted read-only, immediately
1479             followed by the powering off. If <option>--force</option> is
1480             specified twice, the operation is immediately executed
1481             without terminating any processes or unmounting any file
1482             systems. This may result in data loss.</para>
1483           </listitem>
1484         </varlistentry>
1485         <varlistentry>
1486           <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
1487
1488           <listitem>
1489             <para>Shut down and reboot the system. This is mostly
1490             equivalent to <command>start reboot.target --irreversible</command>,
1491             but also prints a wall message to all users. If combined with
1492             <option>--force</option>, shutdown of all running services is
1493             skipped, however all processes are killed and all file
1494             systems are unmounted or mounted read-only, immediately
1495             followed by the reboot. If <option>--force</option> is
1496             specified twice, the operation is immediately executed
1497             without terminating any processes or unmounting any file
1498             systems. This may result in data loss.</para>
1499
1500             <para>If the optional argument
1501             <replaceable>arg</replaceable> is given, it will be passed
1502             as the optional argument to the
1503             <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
1504             system call. The value is architecture and firmware
1505             specific. As an example, <literal>recovery</literal> might
1506             be used to trigger system recovery, and
1507             <literal>fota</literal> might be used to trigger a
1508             <quote>firmware over the air</quote> update.</para>
1509           </listitem>
1510         </varlistentry>
1511         <varlistentry>
1512           <term><command>kexec</command></term>
1513
1514           <listitem>
1515             <para>Shut down and reboot the system via kexec. This is
1516             mostly equivalent to <command>start kexec.target --irreversible</command>,
1517             but also prints a wall message to all users. If combined
1518             with <option>--force</option>, shutdown of all running
1519             services is skipped, however all processes are killed and
1520             all file systems are unmounted or mounted read-only,
1521             immediately followed by the reboot.</para>
1522           </listitem>
1523         </varlistentry>
1524         <varlistentry>
1525           <term><command>exit</command></term>
1526
1527           <listitem>
1528             <para>Ask the systemd manager to quit. This is only
1529             supported for user service managers (i.e. in conjunction
1530             with the <option>--user</option> option) and will fail
1531             otherwise.</para>
1532           </listitem>
1533
1534         </varlistentry>
1535         <varlistentry>
1536           <term><command>suspend</command></term>
1537
1538           <listitem>
1539             <para>Suspend the system. This will trigger activation of
1540             the special <filename>suspend.target</filename> target.
1541             </para>
1542           </listitem>
1543         </varlistentry>
1544         <varlistentry>
1545           <term><command>hibernate</command></term>
1546
1547           <listitem>
1548             <para>Hibernate the system. This will trigger activation of
1549             the special <filename>hibernate.target</filename> target.
1550             </para>
1551           </listitem>
1552         </varlistentry>
1553         <varlistentry>
1554           <term><command>hybrid-sleep</command></term>
1555
1556           <listitem>
1557             <para>Hibernate and suspend the system. This will trigger
1558             activation of the special
1559             <filename>hybrid-sleep.target</filename> target.</para>
1560           </listitem>
1561         </varlistentry>
1562         <varlistentry>
1563           <term><command>switch-root <replaceable>ROOT</replaceable> <optional><replaceable>INIT</replaceable></optional></command></term>
1564
1565           <listitem>
1566             <para>Switches to a different root directory and executes a
1567             new system manager process below it. This is intended for
1568             usage in initial RAM disks ("initrd"), and will transition
1569             from the initrd's system manager process (a.k.a "init"
1570             process) to the main system manager process. This call takes two
1571             arguments: the directory that is to become the new root directory, and
1572             the path to the new system manager binary below it to
1573             execute as PID 1. If the latter is omitted or the empty
1574             string, a systemd binary will automatically be searched for
1575             and used as init. If the system manager path is omitted or
1576             equal to the empty string, the state of the initrd's system
1577             manager process is passed to the main system manager, which
1578             allows later introspection of the state of the services
1579             involved in the initrd boot.</para>
1580           </listitem>
1581         </varlistentry>
1582       </variablelist>
1583     </refsect2>
1584
1585     <refsect2>
1586       <title>Parameter Syntax</title>
1587
1588       <para>Unit commands listed above take either a single unit name
1589       (designated as <replaceable>NAME</replaceable>), or multiple
1590       unit specifications (designated as
1591       <replaceable>PATTERN</replaceable>...). In the first case, the
1592       unit name with or without a suffix must be given. If the suffix
1593       is not specified, systemctl will append a suitable suffix,
1594       <literal>.service</literal> by default, and a type-specific
1595       suffix in case of commands which operate only on specific unit
1596       types. For example,
1597       <programlisting># systemctl start sshd</programlisting> and
1598       <programlisting># systemctl start sshd.service</programlisting>
1599       are equivalent, as are
1600       <programlisting># systemctl isolate snapshot-11</programlisting>
1601       and
1602       <programlisting># systemctl isolate snapshot-11.snapshot</programlisting>
1603       Note that (absolute) paths to device nodes are automatically
1604       converted to device unit names, and other (absolute) paths to
1605       mount unit names.
1606       <programlisting># systemctl status /dev/sda
1607 # systemctl status /home</programlisting>
1608       are equivalent to:
1609       <programlisting># systemctl status dev-sda.device
1610 # systemctl status home.mount</programlisting>
1611       In the second case, shell-style globs will be matched against
1612       currently loaded units; literal unit names, with or without
1613       a suffix, will be treated as in the first case. This means that
1614       literal unit names always refer to exactly one unit, but globs
1615       may match zero units and this is not considered an error.</para>
1616
1617       <para>Glob patterns use
1618       <citerefentry><refentrytitle>fnmatch</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
1619       so normal shell-style globbing rules are used, and
1620       <literal>*</literal>, <literal>?</literal>,
1621       <literal>[]</literal> may be used. See
1622       <citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1623       for more details. The patterns are matched against the names of
1624       currently loaded units, and patterns which do not match anything
1625       are silently skipped. For example:
1626       <programlisting># systemctl stop sshd@*.service</programlisting>
1627       will stop all <filename>sshd@.service</filename> instances.
1628       </para>
1629
1630       <para>For unit file commands, the specified
1631       <replaceable>NAME</replaceable> should be the full name of the
1632       unit file, or the absolute path to the unit file:
1633       <programlisting># systemctl enable foo.service</programlisting>
1634       or
1635       <programlisting># systemctl link /path/to/foo.service</programlisting>
1636       </para>
1637     </refsect2>
1638
1639   </refsect1>
1640
1641   <refsect1>
1642     <title>Exit status</title>
1643
1644     <para>On success, 0 is returned, a non-zero failure
1645     code otherwise.</para>
1646   </refsect1>
1647
1648   <xi:include href="less-variables.xml" />
1649
1650   <refsect1>
1651     <title>See Also</title>
1652     <para>
1653       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1654       <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1655       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1656       <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1657       <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1658       <citerefentry><refentrytitle>systemd.resource-management</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1659       <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1660       <citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1661       <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
1662       <citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1663     </para>
1664   </refsect1>
1665
1666 </refentry>