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