chiark / gitweb /
tmpfiles: port to unquote_many_words()
[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 explicitly, 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       <xi:include href="user-system-options.xml" xpointer="user" />
325       <xi:include href="user-system-options.xml" xpointer="system" />
326
327       <!-- we do not document -failed here, as it has been made
328            redundant by -state=failed, which it predates. To keep
329            things simple we only document the new switch, while
330            keeping the old one around for compatibility only. -->
331
332       <varlistentry>
333         <term><option>--no-wall</option></term>
334
335         <listitem>
336           <para>Do not send wall message before halt, power-off,
337           reboot.</para>
338         </listitem>
339       </varlistentry>
340
341       <varlistentry>
342         <term><option>--global</option></term>
343
344         <listitem>
345           <para>When used with <command>enable</command> and
346           <command>disable</command>, operate on the global user
347           configuration directory, thus enabling or disabling a unit
348           file globally for all future logins of all users.</para>
349         </listitem>
350       </varlistentry>
351
352       <varlistentry>
353         <term><option>--no-reload</option></term>
354
355         <listitem>
356           <para>When used with <command>enable</command> and
357           <command>disable</command>, do not implicitly reload daemon
358           configuration after executing the changes.</para>
359         </listitem>
360       </varlistentry>
361
362       <varlistentry>
363         <term><option>--no-ask-password</option></term>
364
365         <listitem>
366           <para>When used with <command>start</command> and related
367           commands, disables asking for passwords. Background services
368           may require input of a password or passphrase string, for
369           example to unlock system hard disks or cryptographic
370           certificates. Unless this option is specified and the
371           command is invoked from a terminal,
372           <command>systemctl</command> will query the user on the
373           terminal for the necessary secrets. Use this option to
374           switch this behavior off. In this case, the password must be
375           supplied by some other means (for example graphical password
376           agents) or the service might fail. This also disables
377           querying the user for authentication for privileged
378           operations.</para>
379         </listitem>
380       </varlistentry>
381
382       <varlistentry>
383         <term><option>--kill-who=</option></term>
384
385         <listitem>
386           <para>When used with <command>kill</command>, choose which
387           processes to send a signal to. Must be one of
388           <option>main</option>, <option>control</option> or
389           <option>all</option> to select whether to kill only the main
390           process, the control process or all processes of the
391           unit. The main process of the unit is the one that defines
392           the life-time of it. A control process of a unit is one that
393           is invoked by the manager to induce state changes of it. For
394           example, all processes started due to the
395           <varname>ExecStartPre=</varname>,
396           <varname>ExecStop=</varname> or
397           <varname>ExecReload=</varname> settings of service units are
398           control processes. Note that there is only one control
399           process per unit at a time, as only one state change is
400           executed at a time. For services of type
401           <varname>Type=forking</varname>, the initial process started
402           by the manager for <varname>ExecStart=</varname> is a
403           control process, while the process ultimately forked off by
404           that one is then considered the main process of the unit (if
405           it can be determined). This is different for service units
406           of other types, where the process forked off by the manager
407           for <varname>ExecStart=</varname> is always the main process
408           itself. A service unit consists of zero or one main process,
409           zero or one control process plus any number of additional
410           processes. Not all unit types manage processes of these
411           types however. For example, for mount units, control processes
412           are defined (which are the invocations of
413           <filename>/usr/bin/mount</filename> and
414           <filename>/usr/bin/umount</filename>), but no main process
415           is defined. If omitted, defaults to
416           <option>all</option>.</para>
417         </listitem>
418
419       </varlistentry>
420
421       <varlistentry>
422         <term><option>-s</option></term>
423         <term><option>--signal=</option></term>
424
425         <listitem>
426           <para>When used with <command>kill</command>, choose which
427           signal to send to selected processes. Must be one of the
428           well known signal specifiers such as <constant>SIGTERM</constant>, <constant>SIGINT</constant> or
429           <constant>SIGSTOP</constant>. If omitted, defaults to
430           <option>SIGTERM</option>.</para>
431         </listitem>
432       </varlistentry>
433
434       <varlistentry>
435         <term><option>-f</option></term>
436         <term><option>--force</option></term>
437
438         <listitem>
439           <para>When used with <command>enable</command>, overwrite
440           any existing conflicting symlinks.</para>
441
442           <para>When used with <command>halt</command>,
443           <command>poweroff</command>, <command>reboot</command> or
444           <command>kexec</command>, execute the selected operation
445           without shutting down all units. However, all processes will
446           be killed forcibly and all file systems are unmounted or
447           remounted read-only. This is hence a drastic but relatively
448           safe option to request an immediate reboot. If
449           <option>--force</option> is specified twice for these
450           operations, they will be executed immediately without
451           terminating any processes or unmounting any file
452           systems. Warning: specifying <option>--force</option> twice
453           with any of these operations might result in data
454           loss.</para>
455         </listitem>
456       </varlistentry>
457
458       <varlistentry>
459         <term><option>--root=</option></term>
460
461         <listitem>
462           <para>When used with
463           <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
464           (and related commands), use alternative root path when
465           looking for unit files.</para>
466         </listitem>
467
468       </varlistentry>
469
470       <varlistentry>
471         <term><option>--runtime</option></term>
472
473         <listitem>
474           <para>When used with <command>enable</command>,
475           <command>disable</command>, <command>edit</command>,
476           (and related commands), make changes only temporarily, so
477           that they are lost on the next reboot. This will have the
478           effect that changes are not made in subdirectories of
479           <filename>/etc</filename> but in <filename>/run</filename>,
480           with identical immediate effects, however, since the latter
481           is lost on reboot, the changes are lost too.</para>
482
483           <para>Similarly, when used with
484           <command>set-property</command>, make changes only
485           temporarily, so that they are lost on the next
486           reboot.</para>
487         </listitem>
488       </varlistentry>
489
490       <varlistentry>
491         <term><option>--preset-mode=</option></term>
492
493         <listitem>
494           <para>Takes one of <literal>full</literal> (the default),
495           <literal>enable-only</literal>,
496           <literal>disable-only</literal>. When used with the
497           <command>preset</command> or <command>preset-all</command>
498           commands, controls whether units shall be disabled and
499           enabled according to the preset rules, or only enabled, or
500           only disabled.</para>
501         </listitem>
502       </varlistentry>
503
504       <varlistentry>
505         <term><option>-n</option></term>
506         <term><option>--lines=</option></term>
507
508         <listitem>
509           <para>When used with <command>status</command>, controls the
510           number of journal lines to show, counting from the most
511           recent ones. Takes a positive integer argument. Defaults to
512           10.</para>
513         </listitem>
514       </varlistentry>
515
516       <varlistentry>
517         <term><option>-o</option></term>
518         <term><option>--output=</option></term>
519
520         <listitem>
521           <para>When used with <command>status</command>, controls the
522           formatting of the journal entries that are shown. For the
523           available choices, see
524           <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
525           Defaults to <literal>short</literal>.</para>
526         </listitem>
527       </varlistentry>
528
529       <varlistentry>
530         <term><option>--plain</option></term>
531
532         <listitem>
533           <para>When used with <command>list-dependencies</command>,
534           the output is printed as a list instead of a tree.</para>
535         </listitem>
536       </varlistentry>
537
538       <xi:include href="user-system-options.xml" xpointer="host" />
539       <xi:include href="user-system-options.xml" xpointer="machine" />
540
541       <xi:include href="standard-options.xml" xpointer="no-pager" />
542       <xi:include href="standard-options.xml" xpointer="no-legend" />
543       <xi:include href="standard-options.xml" xpointer="help" />
544       <xi:include href="standard-options.xml" xpointer="version" />
545     </variablelist>
546   </refsect1>
547
548   <refsect1>
549     <title>Commands</title>
550
551     <para>The following commands are understood:</para>
552
553     <refsect2>
554       <title>Unit Commands</title>
555
556       <variablelist>
557         <varlistentry>
558           <term><command>list-units <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
559
560           <listitem>
561             <para>List known units (subject to limitations specified
562             with <option>-t</option>). If one or more
563             <replaceable>PATTERN</replaceable>s are specified, only
564             units matching one of them are shown.</para>
565
566             <para>This is the default command.</para>
567           </listitem>
568         </varlistentry>
569
570         <varlistentry>
571           <term><command>list-sockets <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
572
573           <listitem>
574             <para>List socket units ordered by listening address.
575             If one or more <replaceable>PATTERN</replaceable>s are
576             specified, only socket units matching one of them are
577             shown. Produces output similar to
578             <programlisting>
579 LISTEN           UNIT                        ACTIVATES
580 /dev/initctl     systemd-initctl.socket      systemd-initctl.service
581 ...
582 [::]:22          sshd.socket                 sshd.service
583 kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
584
585 5 sockets listed.</programlisting>
586             Note: because the addresses might contains spaces, this output
587             is not suitable for programmatic consumption.
588             </para>
589
590             <para>See also the options <option>--show-types</option>,
591             <option>--all</option>, and <option>--state=</option>.</para>
592           </listitem>
593         </varlistentry>
594
595         <varlistentry>
596           <term><command>list-timers <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
597
598           <listitem>
599             <para>List timer units ordered by the time they elapse
600             next. If one or more <replaceable>PATTERN</replaceable>s
601             are specified, only units matching one of them are shown.
602             </para>
603
604             <para>See also the options <option>--all</option> and
605             <option>--state=</option>.</para>
606           </listitem>
607         </varlistentry>
608
609         <varlistentry>
610           <term><command>start <replaceable>PATTERN</replaceable>...</command></term>
611
612           <listitem>
613             <para>Start (activate) one or more units specified on the
614             command line.</para>
615
616             <para>Note that glob patterns operate on a list of currently
617             loaded units. Units which are not active and are not in a
618             failed state usually are not loaded, and would not be
619             matched by any pattern. In addition, in case of
620             instantiated units, systemd is often unaware of the
621             instance name until the instance has been started. Therefore,
622             using glob patterns with <command>start</command>
623             has limited usefulness.</para>
624           </listitem>
625         </varlistentry>
626         <varlistentry>
627           <term><command>stop <replaceable>PATTERN</replaceable>...</command></term>
628
629           <listitem>
630             <para>Stop (deactivate) one or more units specified on the
631             command line.</para>
632           </listitem>
633         </varlistentry>
634         <varlistentry>
635           <term><command>reload <replaceable>PATTERN</replaceable>...</command></term>
636
637           <listitem>
638             <para>Asks all units listed on the command line to reload
639             their configuration. Note that this will reload the
640             service-specific configuration, not the unit configuration
641             file of systemd. If you want systemd to reload the
642             configuration file of a unit, use the
643             <command>daemon-reload</command> command. In other words:
644             for the example case of Apache, this will reload Apache's
645             <filename>httpd.conf</filename> in the web server, not the
646             <filename>apache.service</filename> systemd unit
647             file.</para>
648
649             <para>This command should not be confused with the
650             <command>daemon-reload</command> command.</para>
651           </listitem>
652
653         </varlistentry>
654         <varlistentry>
655           <term><command>restart <replaceable>PATTERN</replaceable>...</command></term>
656
657           <listitem>
658             <para>Restart one or more units specified on the command
659             line. If the units are not running yet, they will be
660             started.</para>
661           </listitem>
662         </varlistentry>
663         <varlistentry>
664           <term><command>try-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 running. This does nothing if units are not
669             running.  Note that, for compatibility with Red Hat init
670             scripts, <command>condrestart</command> is equivalent to this
671             command.</para>
672           </listitem>
673         </varlistentry>
674         <varlistentry>
675           <term><command>reload-or-restart <replaceable>PATTERN</replaceable>...</command></term>
676
677           <listitem>
678             <para>Reload one or more units if they support it. If not,
679             restart them instead. If the units are not running yet, they
680             will be started.</para>
681           </listitem>
682         </varlistentry>
683         <varlistentry>
684           <term><command>reload-or-try-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. This does nothing if the units are not
689             running. Note that, for compatibility with SysV init scripts,
690             <command>force-reload</command> is equivalent to this
691             command.</para>
692           </listitem>
693         </varlistentry>
694         <varlistentry>
695           <term><command>isolate <replaceable>NAME</replaceable></command></term>
696
697           <listitem>
698             <para>Start the unit specified on the command line and its
699             dependencies and stop all others. If a unit name with no
700             extension is given, an extension of
701             <literal>.target</literal> will be assumed.</para>
702
703             <para>This is similar to changing the runlevel in a
704             traditional init system. The <command>isolate</command>
705             command will immediately stop processes that are not enabled
706             in the new unit, possibly including the graphical
707             environment or terminal you are currently using.</para>
708
709             <para>Note that this is allowed only on units where
710             <option>AllowIsolate=</option> is enabled. See
711             <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
712             for details.</para>
713           </listitem>
714         </varlistentry>
715         <varlistentry>
716           <term><command>kill <replaceable>PATTERN</replaceable>...</command></term>
717
718           <listitem>
719             <para>Send a signal to one or more processes of the
720             unit. Use <option>--kill-who=</option> to select which
721             process to kill. Use <option>--signal=</option> to select
722             the signal to send.</para>
723           </listitem>
724         </varlistentry>
725         <varlistentry>
726           <term><command>is-active <replaceable>PATTERN</replaceable>...</command></term>
727
728           <listitem>
729             <para>Check whether any of the specified units are active
730             (i.e. running). Returns an exit code
731             <constant>0</constant> if at least one is active, or
732             non-zero otherwise. Unless <option>--quiet</option> is
733             specified, this will also print the current unit state to
734             standard output.</para>
735           </listitem>
736         </varlistentry>
737         <varlistentry>
738           <term><command>is-failed <replaceable>PATTERN</replaceable>...</command></term>
739
740           <listitem>
741             <para>Check whether any of the specified units are in a
742             "failed" state. Returns an exit code
743             <constant>0</constant> if at least one has failed,
744             non-zero otherwise. Unless <option>--quiet</option> is
745             specified, this will also print the current unit state to
746             standard output.</para>
747           </listitem>
748         </varlistentry>
749         <varlistentry>
750           <term><command>status</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...]</optional></term>
751
752           <listitem>
753             <para>Show terse runtime status information about one or
754             more units, followed by most recent log data from the
755             journal. If no units are specified, show system status. If
756             combined with <option>--all</option>, also show the status of
757             all units (subject to limitations specified with
758             <option>-t</option>). If a PID is passed, show information
759             about the unit the process belongs to.</para>
760
761             <para>This function is intended to generate human-readable
762             output. If you are looking for computer-parsable output,
763             use <command>show</command> instead. By default this
764             function only shows 10 lines of output and ellipsizes
765             lines to fit in the terminal window. This can be changes
766             with <option>--lines</option> and <option>--full</option>,
767             see above. In addition, <command>journalctl
768             --unit=<replaceable>NAME</replaceable></command> or
769             <command>journalctl
770             --user-unit=<replaceable>NAME</replaceable></command> use
771             a similar filter for messages and might be more
772             convenient.
773             </para>
774           </listitem>
775         </varlistentry>
776         <varlistentry>
777           <term><command>show</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>JOB</replaceable>...</optional></term>
778
779           <listitem>
780             <para>Show properties of one or more units, jobs, or the
781             manager itself. If no argument is specified, properties of
782             the manager will be shown. If a unit name is specified,
783             properties of the unit is shown, and if a job id is
784             specified, properties of the job is shown. By default, empty
785             properties are suppressed. Use <option>--all</option> to
786             show those too. To select specific properties to show, use
787             <option>--property=</option>. This command is intended to be
788             used whenever computer-parsable output is required. Use
789             <command>status</command> if you are looking for formatted
790             human-readable output.</para>
791           </listitem>
792         </varlistentry>
793         <varlistentry>
794           <term><command>cat <replaceable>PATTERN</replaceable>...</command></term>
795
796           <listitem>
797             <para>Show backing files of one or more units. Prints the
798             "fragment" and "drop-ins" (source files) of units. Each
799             file is preceded by a comment which includes the file
800             name.</para>
801           </listitem>
802         </varlistentry>
803         <varlistentry>
804           <term><command>set-property <replaceable>NAME</replaceable> <replaceable>ASSIGNMENT</replaceable>...</command></term>
805
806           <listitem>
807             <para>Set the specified unit properties at runtime where
808             this is supported. This allows changing configuration
809             parameter properties such as resource control settings at
810             runtime. Not all properties may be changed at runtime, but
811             many resource control settings (primarily those in
812             <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
813             may. The changes are applied instantly, and stored on disk
814             for future boots, unless <option>--runtime</option> is
815             passed, in which case the settings only apply until the
816             next reboot. The syntax of the property assignment follows
817             closely the syntax of assignments in unit files.</para>
818
819             <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para>
820
821             <para>Note that this command allows changing multiple
822             properties at the same time, which is preferable over
823             setting them individually. Like unit file configuration
824             settings, assigning the empty list to list parameters will
825             reset the list.</para>
826           </listitem>
827         </varlistentry>
828
829         <varlistentry>
830           <term><command>help <replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...</command></term>
831
832           <listitem>
833             <para>Show manual pages for one or more units, if
834             available. If a PID is given, the manual pages for the unit
835             the process belongs to are shown.</para>
836           </listitem>
837         </varlistentry>
838
839         <varlistentry>
840           <term><command>reset-failed [<replaceable>PATTERN</replaceable>...]</command></term>
841
842           <listitem>
843             <para>Reset the <literal>failed</literal> state of the
844             specified units, or if no unit name is passed, reset the state of all
845             units. When a unit fails in some way (i.e. process exiting
846             with non-zero error code, terminating abnormally or timing
847             out), it will automatically enter the
848             <literal>failed</literal> state and its exit code and status
849             is recorded for introspection by the administrator until the
850             service is restarted or reset with this command.</para>
851           </listitem>
852         </varlistentry>
853
854         <varlistentry>
855           <term>
856             <command>list-dependencies</command>
857             <optional><replaceable>NAME</replaceable></optional>
858           </term>
859
860           <listitem>
861             <para>Shows units required and wanted by the specified
862             unit. This recursively lists units following the
863             <varname>Requires=</varname>,
864             <varname>RequiresOverridable=</varname>,
865             <varname>Requisite=</varname>,
866             <varname>RequisiteOverridable=</varname>,
867             <varname>Wants=</varname>, <varname>BindsTo=</varname>
868             dependencies. If no unit is specified,
869             <filename>default.target</filename> is implied.</para>
870
871             <para>By default, only target units are recursively
872             expanded. When <option>--all</option> is passed, all other
873             units are recursively expanded as well.</para>
874
875             <para>Options <option>--reverse</option>,
876             <option>--after</option>, <option>--before</option>
877             may be used to change what types of dependencies
878             are shown.</para>
879           </listitem>
880         </varlistentry>
881       </variablelist>
882     </refsect2>
883
884     <refsect2>
885       <title>Unit File Commands</title>
886
887       <variablelist>
888         <varlistentry>
889           <term><command>list-unit-files <optional><replaceable>PATTERN...</replaceable></optional></command></term>
890
891           <listitem>
892             <para>List installed unit files. If one or more
893             <replaceable>PATTERN</replaceable>s are specified, only
894             units whose filename (just the last component of the path)
895             matches one of them are shown.</para>
896           </listitem>
897         </varlistentry>
898
899         <varlistentry>
900           <term><command>enable <replaceable>NAME</replaceable>...</command></term>
901
902           <listitem>
903             <para>Enable one or more unit files or unit file instances,
904             as specified on the command line. This will create a number
905             of symlinks as encoded in the <literal>[Install]</literal>
906             sections of the unit files. After the symlinks have been
907             created, the systemd configuration is reloaded (in a way that
908             is equivalent to <command>daemon-reload</command>) to ensure
909             the changes are taken into account immediately. Note that
910             this does <emphasis>not</emphasis> have the effect of also
911             starting any of the units being enabled. If this
912             is desired, a separate <command>start</command> command must
913             be invoked for the unit. Also note that in case of instance
914             enablement, symlinks named the same as instances are created in
915             the install location, however they all point to the same
916             template unit file.</para>
917
918             <para>This command will print the actions executed. This
919             output may be suppressed by passing <option>--quiet</option>.
920             </para>
921
922             <para>Note that this operation creates only the suggested
923             symlinks for the units. While this command is the
924             recommended way to manipulate the unit configuration
925             directory, the administrator is free to make additional
926             changes manually by placing or removing symlinks in the
927             directory. This is particularly useful to create
928             configurations that deviate from the suggested default
929             installation. In this case, the administrator must make sure
930             to invoke <command>daemon-reload</command> manually as
931             necessary to ensure the changes are taken into account.
932             </para>
933
934             <para>Enabling units should not be confused with starting
935             (activating) units, as done by the <command>start</command>
936             command. Enabling and starting units is orthogonal: units
937             may be enabled without being started and started without
938             being enabled. Enabling simply hooks the unit into various
939             suggested places (for example, so that the unit is
940             automatically started on boot or when a particular kind of
941             hardware is plugged in). Starting actually spawns the daemon
942             process (in case of service units), or binds the socket (in
943             case of socket units), and so on.</para>
944
945             <para>Depending on whether <option>--system</option>,
946             <option>--user</option>, <option>--runtime</option>,
947             or <option>--global</option> is specified, this enables the unit
948             for the system, for the calling user only, for only this boot of
949             the system, or for all future logins of all users, or only this
950             boot.  Note that in the last case, no systemd daemon
951             configuration is reloaded.</para>
952
953             <para>Using <command>enable</command> on masked units
954             results in an error.</para>
955           </listitem>
956         </varlistentry>
957
958         <varlistentry>
959           <term><command>disable <replaceable>NAME</replaceable>...</command></term>
960
961           <listitem>
962             <para>Disables one or more units. This removes all symlinks
963             to the specified unit files from the unit configuration
964             directory, and hence undoes the changes made by
965             <command>enable</command>. Note however that this removes
966             all symlinks to the unit files (i.e. including manual
967             additions), not just those actually created by
968             <command>enable</command>. This call implicitly reloads the
969             systemd daemon configuration after completing the disabling
970             of the units. Note that this command does not implicitly
971             stop the units that are being disabled. If this is desired,
972             an additional <command>stop</command> command should be
973             executed afterwards.</para>
974
975             <para>This command will print the actions executed. This
976             output may be suppressed by passing <option>--quiet</option>.
977             </para>
978
979             <para>This command honors <option>--system</option>,
980             <option>--user</option>, <option>--runtime</option> and
981             <option>--global</option> in a similar way as
982             <command>enable</command>.</para>
983           </listitem>
984         </varlistentry>
985
986         <varlistentry>
987           <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
988
989           <listitem>
990             <para>Reenable one or more unit files, as specified on the
991             command line. This is a combination of
992             <command>disable</command> and <command>enable</command> and
993             is useful to reset the symlinks a unit is enabled with to
994             the defaults configured in the <literal>[Install]</literal>
995             section of the unit file.</para>
996           </listitem>
997         </varlistentry>
998
999         <varlistentry>
1000           <term><command>preset <replaceable>NAME</replaceable>...</command></term>
1001
1002           <listitem>
1003             <para>Reset one or more unit files, as specified on the
1004             command line, to the defaults configured in the preset
1005             policy files. This has the same effect as
1006             <command>disable</command> or <command>enable</command>,
1007             depending how the unit is listed in the preset files.</para>
1008
1009             <para>Use <option>--preset-mode=</option> to control
1010             whether units shall be enabled and disabled, or only
1011             enabled, or only disabled.</para>
1012
1013             <para>For more information on the preset policy format,
1014             see
1015             <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
1016             For more information on the concept of presets, please
1017             consult the <ulink
1018             url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
1019             document.</para>
1020           </listitem>
1021         </varlistentry>
1022
1023         <varlistentry>
1024           <term><command>preset-all</command></term>
1025
1026           <listitem>
1027             <para>Resets all installed unit files to the defaults
1028             configured in the preset policy file (see above).</para>
1029
1030             <para>Use <option>--preset-mode=</option> to control
1031             whether units shall be enabled and disabled, or only
1032             enabled, or only disabled.</para>
1033           </listitem>
1034         </varlistentry>
1035
1036         <varlistentry>
1037           <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
1038
1039           <listitem>
1040             <para>Checks whether any of the specified unit files are
1041             enabled (as with <command>enable</command>). Returns an
1042             exit code of 0 if at least one is enabled, non-zero
1043             otherwise. Prints the current enable status (see table).
1044             To suppress this output, use <option>--quiet</option>.
1045             </para>
1046
1047             <table>
1048               <title>
1049                 <command>is-enabled</command> output
1050               </title>
1051
1052               <tgroup cols='3'>
1053                 <thead>
1054                   <row>
1055                     <entry>Printed string</entry>
1056                     <entry>Meaning</entry>
1057                     <entry>Return value</entry>
1058                   </row>
1059                 </thead>
1060                 <tbody>
1061                   <row>
1062                     <entry><literal>enabled</literal></entry>
1063                     <entry morerows='1'>Enabled through a symlink in <filename>.wants</filename> directory (permanently or just in <filename>/run</filename>).</entry>
1064                     <entry morerows='1'>0</entry>
1065                   </row>
1066                   <row>
1067                     <entry><literal>enabled-runtime</literal></entry>
1068                   </row>
1069                   <row>
1070                     <entry><literal>linked</literal></entry>
1071                     <entry morerows='1'>Made available through a symlink to the unit file (permanently or just in <filename>/run</filename>).</entry>
1072                     <entry morerows='1'>1</entry>
1073                   </row>
1074                   <row>
1075                     <entry><literal>linked-runtime</literal></entry>
1076                   </row>
1077                   <row>
1078                     <entry><literal>masked</literal></entry>
1079                     <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>).</entry>
1080                     <entry morerows='1'>1</entry>
1081                   </row>
1082                   <row>
1083                     <entry><literal>masked-runtime</literal></entry>
1084                   </row>
1085                   <row>
1086                     <entry><literal>static</literal></entry>
1087                     <entry>Unit file is not enabled, and has no provisions for enabling in the <literal>[Install]</literal> section.</entry>
1088                     <entry>0</entry>
1089                   </row>
1090                   <row>
1091                     <entry><literal>indirect</literal></entry>
1092                     <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>
1093                     <entry>0</entry>
1094                   </row>
1095                   <row>
1096                     <entry><literal>disabled</literal></entry>
1097                     <entry>Unit file is not enabled.</entry>
1098                     <entry>1</entry>
1099                   </row>
1100                 </tbody>
1101               </tgroup>
1102             </table>
1103
1104           </listitem>
1105         </varlistentry>
1106
1107         <varlistentry>
1108           <term><command>mask <replaceable>NAME</replaceable>...</command></term>
1109
1110           <listitem>
1111             <para>Mask one or more unit files, as specified on the
1112             command line. This will link these units to
1113             <filename>/dev/null</filename>, making it impossible to
1114             start them. This is a stronger version of
1115             <command>disable</command>, since it prohibits all kinds of
1116             activation of the unit, including enablement and manual
1117             activation. Use this option with care. This honors the
1118             <option>--runtime</option> option to only mask temporarily
1119             until the next reboot of the system.</para>
1120           </listitem>
1121         </varlistentry>
1122
1123         <varlistentry>
1124           <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
1125
1126           <listitem>
1127             <para>Unmask one or more unit files, as specified on the
1128             command line. This will undo the effect of
1129             <command>mask</command>.</para>
1130           </listitem>
1131         </varlistentry>
1132
1133         <varlistentry>
1134           <term><command>link <replaceable>FILENAME</replaceable>...</command></term>
1135
1136           <listitem>
1137             <para>Link a unit file that is not in the unit file search
1138             paths into the unit file search path. This requires an
1139             absolute path to a unit file. The effect of this can be
1140             undone with <command>disable</command>. The effect of this
1141             command is that a unit file is available for
1142             <command>start</command> and other commands although it
1143             is not installed directly in the unit search path.</para>
1144           </listitem>
1145         </varlistentry>
1146
1147         <varlistentry>
1148           <term><command>add-wants <replaceable>TARGET</replaceable>
1149           <replaceable>NAME</replaceable>...</command></term>
1150           <term><command>add-requires <replaceable>TARGET</replaceable>
1151           <replaceable>NAME</replaceable>...</command></term>
1152
1153           <listitem>
1154             <para>Adds <literal>Wants=</literal> resp. <literal>Requires=</literal>
1155             dependency to the specified <replaceable>TARGET</replaceable> for
1156             one or more units. </para>
1157
1158             <para>This command honors <option>--system</option>,
1159             <option>--user</option>, <option>--runtime</option> and
1160             <option>--global</option> in a similar way as
1161             <command>enable</command>.</para>
1162
1163           </listitem>
1164         </varlistentry>
1165
1166         <varlistentry>
1167           <term><command>edit <replaceable>NAME</replaceable>...</command></term>
1168
1169           <listitem>
1170             <para>Edit a drop-in snippet or a whole replacement file if
1171             <option>--full</option> is specified, to extend or override the
1172             specified unit.</para>
1173
1174             <para>Depending on whether <option>--system</option> (the default),
1175             <option>--user</option>, or <option>--global</option> is specified,
1176             this creates a drop-in file for each unit either for the system,
1177             for the calling user or for all futures logins of all users. Then,
1178             the editor (see the "Environment" section below) is invoked on
1179             temporary files which will be written to the real location if the
1180             editor exits successfully.</para>
1181
1182             <para>If <option>--full</option> is specified, this will copy the
1183             original units instead of creating drop-in files.</para>
1184
1185             <para>If <option>--runtime</option> is specified, the changes will
1186             be made temporarily in <filename>/run</filename> and they will be
1187             lost on the next reboot.</para>
1188
1189             <para>If the temporary file is empty upon exit the modification of
1190             the related unit is canceled</para>
1191
1192             <para>After the units have been edited, systemd configuration is
1193             reloaded (in a way that is equivalent to <command>daemon-reload</command>).
1194             </para>
1195
1196             <para>Note that this command cannot be used to remotely edit units
1197             and that you cannot temporarily edit units which are in
1198             <filename>/etc</filename> since they take precedence over
1199             <filename>/run</filename>.</para>
1200           </listitem>
1201         </varlistentry>
1202
1203         <varlistentry>
1204           <term><command>get-default</command></term>
1205
1206           <listitem>
1207             <para>Return the default target to boot into. This returns
1208             the target unit name <filename>default.target</filename>
1209             is aliased (symlinked) to.</para>
1210           </listitem>
1211         </varlistentry>
1212
1213         <varlistentry>
1214           <term><command>set-default <replaceable>NAME</replaceable></command></term>
1215
1216           <listitem>
1217             <para>Set the default target to boot into. This sets
1218             (symlinks) the <filename>default.target</filename> alias
1219             to the given target unit.</para>
1220           </listitem>
1221         </varlistentry>
1222
1223       </variablelist>
1224     </refsect2>
1225
1226     <refsect2>
1227       <title>Machine Commands</title>
1228
1229       <variablelist>
1230         <varlistentry>
1231           <term><command>list-machines <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
1232
1233           <listitem>
1234             <para>List the host and all running local containers with
1235             their state. If one or more
1236             <replaceable>PATTERN</replaceable>s are specified, only
1237             containers matching one of them are shown.
1238             </para>
1239           </listitem>
1240         </varlistentry>
1241       </variablelist>
1242     </refsect2>
1243
1244     <refsect2>
1245       <title>Job Commands</title>
1246
1247       <variablelist>
1248         <varlistentry>
1249           <term><command>list-jobs <optional><replaceable>PATTERN...</replaceable></optional></command></term>
1250
1251           <listitem>
1252             <para>List jobs that are in progress. If one or more
1253             <replaceable>PATTERN</replaceable>s are specified, only
1254             jobs for units matching one of them are shown.</para>
1255           </listitem>
1256         </varlistentry>
1257         <varlistentry>
1258           <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
1259
1260           <listitem>
1261             <para>Cancel one or more jobs specified on the command line
1262             by their numeric job IDs. If no job ID is specified, cancel
1263             all pending jobs.</para>
1264           </listitem>
1265         </varlistentry>
1266       </variablelist>
1267     </refsect2>
1268
1269     <refsect2>
1270       <title>Snapshot Commands</title>
1271
1272       <variablelist>
1273         <varlistentry>
1274           <term><command>snapshot <optional><replaceable>NAME</replaceable></optional></command></term>
1275
1276           <listitem>
1277             <para>Create a snapshot. If a snapshot name is specified,
1278             the new snapshot will be named after it. If none is
1279             specified, an automatic snapshot name is generated. In
1280             either case, the snapshot name used is printed to standard
1281             output, unless <option>--quiet</option> is specified.
1282             </para>
1283
1284             <para>A snapshot refers to a saved state of the systemd
1285             manager. It is implemented itself as a unit that is
1286             generated dynamically with this command and has dependencies
1287             on all units active at the time. At a later time, the user
1288             may return to this state by using the
1289             <command>isolate</command> command on the snapshot unit.
1290             </para>
1291
1292             <para>Snapshots are only useful for saving and restoring
1293             which units are running or are stopped, they do not
1294             save/restore any other state. Snapshots are dynamic and lost
1295             on reboot.</para>
1296           </listitem>
1297         </varlistentry>
1298         <varlistentry>
1299           <term><command>delete <replaceable>PATTERN</replaceable>...</command></term>
1300
1301           <listitem>
1302             <para>Remove a snapshot previously created with
1303             <command>snapshot</command>.</para>
1304           </listitem>
1305         </varlistentry>
1306       </variablelist>
1307     </refsect2>
1308
1309     <refsect2>
1310       <title>Environment Commands</title>
1311
1312       <variablelist>
1313         <varlistentry>
1314           <term><command>show-environment</command></term>
1315
1316           <listitem>
1317             <para>Dump the systemd manager environment block. The
1318             environment block will be dumped in straight-forward form
1319             suitable for sourcing into a shell script. This environment
1320             block will be passed to all processes the manager
1321             spawns.</para>
1322           </listitem>
1323         </varlistentry>
1324         <varlistentry>
1325           <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
1326
1327           <listitem>
1328             <para>Set one or more systemd manager environment variables,
1329             as specified on the command line.</para>
1330           </listitem>
1331         </varlistentry>
1332         <varlistentry>
1333           <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
1334
1335           <listitem>
1336             <para>Unset one or more systemd manager environment
1337             variables. If only a variable name is specified, it will be
1338             removed regardless of its value. If a variable and a value
1339             are specified, the variable is only removed if it has the
1340             specified value.</para>
1341           </listitem>
1342         </varlistentry>
1343         <varlistentry>
1344           <term>
1345             <command>import-environment</command>
1346             <optional><replaceable>VARIABLE...</replaceable></optional>
1347           </term>
1348
1349           <listitem>
1350             <para>Import all, one or more environment variables set on
1351             the client into the systemd manager environment block. If
1352             no arguments are passed, the entire environment block is
1353             imported. Otherwise, a list of one or more environment
1354             variable names should be passed, whose client-side values
1355             are then imported into the manager's environment
1356             block.</para>
1357           </listitem>
1358         </varlistentry>
1359       </variablelist>
1360     </refsect2>
1361
1362     <refsect2>
1363       <title>Manager Lifecycle Commands</title>
1364
1365       <variablelist>
1366         <varlistentry>
1367           <term><command>daemon-reload</command></term>
1368
1369           <listitem>
1370             <para>Reload systemd manager configuration. This will
1371             rerun all generators (see
1372             <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>),
1373             reload all unit files, and recreate the entire dependency
1374             tree. While the daemon is being reloaded, all sockets
1375             systemd listens on behalf of user configuration will stay
1376             accessible.</para>
1377
1378             <para>This command should not be confused with the
1379             <command>reload</command> command.</para>
1380           </listitem>
1381         </varlistentry>
1382         <varlistentry>
1383           <term><command>daemon-reexec</command></term>
1384
1385           <listitem>
1386             <para>Reexecute the systemd manager. This will serialize the
1387             manager state, reexecute the process and deserialize the
1388             state again. This command is of little use except for
1389             debugging and package upgrades. Sometimes, it might be
1390             helpful as a heavy-weight <command>daemon-reload</command>.
1391             While the daemon is being reexecuted, all sockets systemd listening
1392             on behalf of user configuration will stay accessible.
1393             </para>
1394           </listitem>
1395         </varlistentry>
1396       </variablelist>
1397     </refsect2>
1398
1399     <refsect2>
1400       <title>System Commands</title>
1401
1402       <variablelist>
1403         <varlistentry>
1404           <term><command>is-system-running</command></term>
1405
1406           <listitem>
1407             <para>Checks whether the system is operational. This
1408             returns success when the system is fully up and running,
1409             meaning not in startup, shutdown or maintenance
1410             mode. Failure is returned otherwise. In addition, the
1411             current state is printed in a short string to standard
1412             output, see table below. Use <option>--quiet</option> to
1413             suppress this output.</para>
1414
1415             <table>
1416               <title>Manager Operational States</title>
1417               <tgroup cols='2'>
1418                 <colspec colname='name' />
1419                 <colspec colname='description' />
1420                 <thead>
1421                   <row>
1422                     <entry>Name</entry>
1423                     <entry>Description</entry>
1424                   </row>
1425                 </thead>
1426                 <tbody>
1427                   <row>
1428                     <entry><varname>initializing</varname></entry>
1429                     <entry><para>Early bootup, before
1430                     <filename>basic.target</filename> is reached
1431                     or the <varname>maintenance</varname> state entered.
1432                     </para></entry>
1433                   </row>
1434                   <row>
1435                     <entry><varname>starting</varname></entry>
1436                     <entry><para>Late bootup, before the job queue
1437                     becomes idle for the first time, or one of the
1438                     rescue targets are reached.</para></entry>
1439                   </row>
1440                   <row>
1441                     <entry><varname>running</varname></entry>
1442                     <entry><para>The system is fully
1443                     operational.</para></entry>
1444                   </row>
1445                   <row>
1446                     <entry><varname>degraded</varname></entry>
1447                     <entry><para>The system is operational but one or more
1448                     units failed.</para></entry>
1449                   </row>
1450                   <row>
1451                     <entry><varname>maintenance</varname></entry>
1452                     <entry><para>The rescue or emergency target is
1453                     active.</para></entry>
1454                   </row>
1455                   <row>
1456                     <entry><varname>stopping</varname></entry>
1457                     <entry><para>The manager is shutting
1458                     down.</para></entry>
1459                   </row>
1460                 </tbody>
1461               </tgroup>
1462             </table>
1463           </listitem>
1464         </varlistentry>
1465
1466         <varlistentry>
1467           <term><command>default</command></term>
1468
1469           <listitem>
1470             <para>Enter default mode. This is mostly equivalent to
1471             <command>isolate default.target</command>.</para>
1472           </listitem>
1473         </varlistentry>
1474
1475         <varlistentry>
1476           <term><command>rescue</command></term>
1477
1478           <listitem>
1479             <para>Enter rescue mode. This is mostly equivalent to
1480             <command>isolate rescue.target</command>, but also prints a
1481             wall message to all users.</para>
1482           </listitem>
1483         </varlistentry>
1484         <varlistentry>
1485           <term><command>emergency</command></term>
1486
1487           <listitem>
1488             <para>Enter emergency mode. This is mostly equivalent to
1489             <command>isolate emergency.target</command>, but also prints
1490             a wall message to all users.</para>
1491           </listitem>
1492         </varlistentry>
1493         <varlistentry>
1494           <term><command>halt</command></term>
1495
1496           <listitem>
1497             <para>Shut down and halt the system. This is mostly equivalent to
1498             <command>start halt.target --irreversible</command>, but also
1499             prints a wall message to all users.  If combined with
1500             <option>--force</option>, shutdown of all running services is
1501             skipped, however all processes are killed and all file
1502             systems are unmounted or mounted read-only, immediately
1503             followed by the system halt.  If <option>--force</option> is
1504             specified twice, the operation is immediately executed
1505             without terminating any processes or unmounting any file
1506             systems. This may result in data loss.</para>
1507           </listitem>
1508         </varlistentry>
1509         <varlistentry>
1510           <term><command>poweroff</command></term>
1511
1512           <listitem>
1513             <para>Shut down and power-off the system. This is mostly
1514             equivalent to <command>start poweroff.target --irreversible</command>,
1515             but also prints a wall message to all users. If combined with
1516             <option>--force</option>, shutdown of all running services is
1517             skipped, however all processes are killed and all file
1518             systems are unmounted or mounted read-only, immediately
1519             followed by the powering off. If <option>--force</option> is
1520             specified twice, the operation is immediately executed
1521             without terminating any processes or unmounting any file
1522             systems. This may result in data loss.</para>
1523           </listitem>
1524         </varlistentry>
1525         <varlistentry>
1526           <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
1527
1528           <listitem>
1529             <para>Shut down and reboot the system. This is mostly
1530             equivalent to <command>start reboot.target --irreversible</command>,
1531             but also prints a wall message to all users. If combined with
1532             <option>--force</option>, shutdown of all running services is
1533             skipped, however all processes are killed and all file
1534             systems are unmounted or mounted read-only, immediately
1535             followed by the reboot. If <option>--force</option> is
1536             specified twice, the operation is immediately executed
1537             without terminating any processes or unmounting any file
1538             systems. This may result in data loss.</para>
1539
1540             <para>If the optional argument
1541             <replaceable>arg</replaceable> is given, it will be passed
1542             as the optional argument to the
1543             <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
1544             system call. The value is architecture and firmware
1545             specific. As an example, <literal>recovery</literal> might
1546             be used to trigger system recovery, and
1547             <literal>fota</literal> might be used to trigger a
1548             <quote>firmware over the air</quote> update.</para>
1549           </listitem>
1550         </varlistentry>
1551
1552         <varlistentry>
1553           <term><command>kexec</command></term>
1554
1555           <listitem>
1556             <para>Shut down and reboot the system via kexec. This is
1557             mostly equivalent to <command>start kexec.target --irreversible</command>,
1558             but also prints a wall message to all users. If combined
1559             with <option>--force</option>, shutdown of all running
1560             services is skipped, however all processes are killed and
1561             all file systems are unmounted or mounted read-only,
1562             immediately followed by the reboot.</para>
1563           </listitem>
1564         </varlistentry>
1565
1566         <varlistentry>
1567           <term><command>exit</command></term>
1568
1569           <listitem>
1570             <para>Ask the systemd manager to quit. This is only
1571             supported for user service managers (i.e. in conjunction
1572             with the <option>--user</option> option) and will fail
1573             otherwise.</para>
1574           </listitem>
1575         </varlistentry>
1576
1577         <varlistentry>
1578           <term><command>switch-root <replaceable>ROOT</replaceable> <optional><replaceable>INIT</replaceable></optional></command></term>
1579
1580           <listitem>
1581             <para>Switches to a different root directory and executes a
1582             new system manager process below it. This is intended for
1583             usage in initial RAM disks ("initrd"), and will transition
1584             from the initrd's system manager process (a.k.a "init"
1585             process) to the main system manager process. This call takes two
1586             arguments: the directory that is to become the new root directory, and
1587             the path to the new system manager binary below it to
1588             execute as PID 1. If the latter is omitted or the empty
1589             string, a systemd binary will automatically be searched for
1590             and used as init. If the system manager path is omitted or
1591             equal to the empty string, the state of the initrd's system
1592             manager process is passed to the main system manager, which
1593             allows later introspection of the state of the services
1594             involved in the initrd boot.</para>
1595           </listitem>
1596         </varlistentry>
1597
1598         <varlistentry>
1599           <term><command>suspend</command></term>
1600
1601           <listitem>
1602             <para>Suspend the system. This will trigger activation of
1603             the special <filename>suspend.target</filename> target.
1604             </para>
1605           </listitem>
1606         </varlistentry>
1607
1608         <varlistentry>
1609           <term><command>hibernate</command></term>
1610
1611           <listitem>
1612             <para>Hibernate the system. This will trigger activation of
1613             the special <filename>hibernate.target</filename> target.
1614             </para>
1615           </listitem>
1616         </varlistentry>
1617
1618         <varlistentry>
1619           <term><command>hybrid-sleep</command></term>
1620
1621           <listitem>
1622             <para>Hibernate and suspend the system. This will trigger
1623             activation of the special
1624             <filename>hybrid-sleep.target</filename> target.</para>
1625           </listitem>
1626         </varlistentry>
1627       </variablelist>
1628     </refsect2>
1629
1630     <refsect2>
1631       <title>Parameter Syntax</title>
1632
1633       <para>Unit commands listed above take either a single unit name
1634       (designated as <replaceable>NAME</replaceable>), or multiple
1635       unit specifications (designated as
1636       <replaceable>PATTERN</replaceable>...). In the first case, the
1637       unit name with or without a suffix must be given. If the suffix
1638       is not specified, systemctl will append a suitable suffix,
1639       <literal>.service</literal> by default, and a type-specific
1640       suffix in case of commands which operate only on specific unit
1641       types. For example,
1642       <programlisting># systemctl start sshd</programlisting> and
1643       <programlisting># systemctl start sshd.service</programlisting>
1644       are equivalent, as are
1645       <programlisting># systemctl isolate default</programlisting>
1646       and
1647       <programlisting># systemctl isolate default.target</programlisting>
1648       Note that (absolute) paths to device nodes are automatically
1649       converted to device unit names, and other (absolute) paths to
1650       mount unit names.
1651       <programlisting># systemctl status /dev/sda
1652 # systemctl status /home</programlisting>
1653       are equivalent to:
1654       <programlisting># systemctl status dev-sda.device
1655 # systemctl status home.mount</programlisting>
1656       In the second case, shell-style globs will be matched against
1657       currently loaded units; literal unit names, with or without
1658       a suffix, will be treated as in the first case. This means that
1659       literal unit names always refer to exactly one unit, but globs
1660       may match zero units and this is not considered an error.</para>
1661
1662       <para>Glob patterns use
1663       <citerefentry project='man-pages'><refentrytitle>fnmatch</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
1664       so normal shell-style globbing rules are used, and
1665       <literal>*</literal>, <literal>?</literal>,
1666       <literal>[]</literal> may be used. See
1667       <citerefentry project='man-pages'><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1668       for more details. The patterns are matched against the names of
1669       currently loaded units, and patterns which do not match anything
1670       are silently skipped. For example:
1671       <programlisting># systemctl stop sshd@*.service</programlisting>
1672       will stop all <filename>sshd@.service</filename> instances.
1673       </para>
1674
1675       <para>For unit file commands, the specified
1676       <replaceable>NAME</replaceable> should be the full name of the
1677       unit file, or the absolute path to the unit file:
1678       <programlisting># systemctl enable foo.service</programlisting>
1679       or
1680       <programlisting># systemctl link /path/to/foo.service</programlisting>
1681       </para>
1682     </refsect2>
1683
1684   </refsect1>
1685
1686   <refsect1>
1687     <title>Exit status</title>
1688
1689     <para>On success, 0 is returned, a non-zero failure
1690     code otherwise.</para>
1691   </refsect1>
1692
1693   <refsect1>
1694     <title>Environment</title>
1695
1696     <variablelist class='environment-variables'>
1697       <varlistentry>
1698         <term><varname>$SYSTEMD_EDITOR</varname></term>
1699
1700         <listitem><para>Editor to use when editing units; overrides
1701         <varname>$EDITOR</varname> and <varname>$VISUAL</varname>. If neither
1702         <varname>$SYSTEMD_EDITOR</varname> nor <varname>$EDITOR</varname> nor
1703         <varname>$VISUAL</varname> are present or if it is set to an empty
1704         string or if their execution failed, systemctl will try to execute well
1705         known editors in this order:
1706         <citerefentry><refentrytitle>nano</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1707         <citerefentry><refentrytitle>vim</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1708         <citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
1709         </para></listitem>
1710       </varlistentry>
1711     </variablelist>
1712     <xi:include href="less-variables.xml" xpointer="pager"/>
1713     <xi:include href="less-variables.xml" xpointer="less"/>
1714   </refsect1>
1715
1716   <refsect1>
1717     <title>See Also</title>
1718     <para>
1719       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1720       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1721       <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1722       <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1723       <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1724       <citerefentry><refentrytitle>systemd.resource-management</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1725       <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1726       <citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1727       <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1728       <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1729       <citerefentry project='man-pages'><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1730     </para>
1731   </refsect1>
1732
1733 </refentry>