chiark / gitweb /
man: prettify systemctl(1)
[elogind.git] / man / systemctl.xml
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <!--
6 This file is part of systemd.
7
8 Copyright 2010 Lennart Poettering
9
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22 -->
23
24 <refentry id="systemctl">
25
26   <refentryinfo>
27     <title>systemctl</title>
28     <productname>systemd</productname>
29
30     <authorgroup>
31       <author>
32         <contrib>Developer</contrib>
33         <firstname>Lennart</firstname>
34         <surname>Poettering</surname>
35         <email>lennart@poettering.net</email>
36       </author>
37     </authorgroup>
38   </refentryinfo>
39
40   <refmeta>
41     <refentrytitle>systemctl</refentrytitle>
42     <manvolnum>1</manvolnum>
43   </refmeta>
44
45   <refnamediv>
46     <refname>systemctl</refname>
47     <refpurpose>Control the systemd system and service manager</refpurpose>
48   </refnamediv>
49
50   <refsynopsisdiv>
51     <cmdsynopsis>
52       <command>systemctl</command>
53       <arg choice="opt" rep="repeat">OPTIONS</arg>
54       <arg choice="plain">COMMAND</arg>
55       <arg choice="opt" rep="repeat">NAME</arg>
56     </cmdsynopsis>
57   </refsynopsisdiv>
58
59   <refsect1>
60     <title>Description</title>
61
62     <para><command>systemctl</command> may be used to
63     introspect and control the state of the
64     <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
65     system and service manager.</para>
66   </refsect1>
67
68   <refsect1>
69     <title>Options</title>
70
71     <para>The following options are understood:</para>
72
73     <variablelist>
74       <varlistentry>
75         <term><option>-h</option></term>
76         <term><option>--help</option></term>
77
78         <listitem><para>Prints a short help
79         text and exits.</para></listitem>
80       </varlistentry>
81
82       <varlistentry>
83         <term><option>--version</option></term>
84
85         <listitem>
86           <para>Prints a short version string and exits.</para>
87         </listitem>
88       </varlistentry>
89
90       <varlistentry>
91         <term><option>-t</option></term>
92         <term><option>--type=</option></term>
93
94         <listitem>
95           <para>The argument should be a unit type name such as
96           <option>service</option> and <option>socket</option>, or a
97           unit load state such as <option>loaded</option> and
98           <option>masked</option>.
99           </para>
100
101           <para>If the argument is a unit type, when listing units,
102           limit display to certain unit types. If not specified units
103           of all types will be shown.</para>
104
105           <para>If the argument is a unit load state, when listing
106           units, limit display to certain unit types. If not specified
107           units of in all load states will be shown.</para>
108
109           <para>As a special case, if the argument is
110           <option>help</option>, a list of allowed values will be
111           printed and the program will exit.</para>
112         </listitem>
113       </varlistentry>
114
115       <varlistentry>
116         <term><option>-p</option></term>
117         <term><option>--property=</option></term>
118
119         <listitem>
120           <para>When showing unit/job/manager properties, limit
121           display to certain properties as specified as argument. If
122           not specified all set properties are shown. The argument
123           should be a property name, such as
124           <literal>MainPID</literal>. If specified more than once all
125           properties with the specified names are
126           shown.</para>
127         </listitem>
128       </varlistentry>
129
130       <varlistentry>
131         <term><option>-a</option></term>
132         <term><option>--all</option></term>
133
134         <listitem>
135           <para>When listing units, show all units, regardless of
136           their state, including inactive units. When showing
137           unit/job/manager properties, show all properties regardless
138           whether they are set or not.</para>
139         </listitem>
140       </varlistentry>
141
142       <varlistentry>
143         <term><option>--failed</option></term>
144
145         <listitem>
146           <para>When listing units, show only failed units. Do not
147           confuse with <option>--fail</option>.</para>
148         </listitem>
149       </varlistentry>
150
151       <varlistentry>
152         <term><option>--full</option></term>
153
154         <listitem>
155           <para>Do not ellipsize unit names, cgroup members, and
156           truncate unit descriptions in the output of
157           <command>list-units</command> and
158           <command>list-jobs</command>.</para>
159         </listitem>
160       </varlistentry>
161
162       <varlistentry>
163         <term><option>--fail</option></term>
164
165         <listitem>
166           <para>If the requested operation conflicts with a pending
167           unfinished job, fail the command. If this is not specified
168           the requested operation will replace the pending job, if
169           necessary. Do not confuse with
170           <option>--failed</option>.</para>
171         </listitem>
172       </varlistentry>
173
174       <varlistentry>
175         <term><option>--ignore-dependencies</option></term>
176
177         <listitem>
178           <para>When enqueuing a new job ignore all its dependencies
179           and execute it immediately. If passed no required units of
180           the unit passed will be pulled in, and no ordering
181           dependencies will be honored. This is mostly a debugging and
182           rescue tool for the administrator and should not be used by
183           applications.</para>
184         </listitem>
185       </varlistentry>
186
187       <varlistentry>
188         <term><option>-i</option></term>
189         <term><option>--ignore-inhibitors</option></term>
190
191         <listitem>
192           <para>When system shutdown or a sleep state is requested,
193           ignore inhibitor locks. Applications can establish inhibitor
194           locks to avoid that certain important operations (such as CD
195           burning or suchlike) are interrupted by system shutdown or a
196           sleep state. Any user may take these locks and privileged
197           users may override these locks. If any locks are taken,
198           shutdown and sleep state requests will normally fail
199           (regardless if privileged or not) and list of active locks
200           is printed. However if <option>--ignore-inhibitors</option>
201           is specified the locks are ignored and not printed, and the
202           operation attempted anyway, possibly requiring additional
203           privileges.</para>
204         </listitem>
205       </varlistentry>
206
207       <varlistentry>
208         <term><option>-q</option></term>
209         <term><option>--quiet</option></term>
210
211         <listitem>
212           <para>Suppress output to standard output in
213           <command>snapshot</command>,
214           <command>is-active</command>,
215           <command>is-failed</command>,
216           <command>enable</command> and
217         <command>disable</command>.</para>
218         </listitem>
219       </varlistentry>
220
221       <varlistentry>
222         <term><option>--no-block</option></term>
223
224         <listitem>
225           <para>Do not synchronously wait for the requested operation
226           to finish. If this is not specified the job will be
227           verified, enqueued and <command>systemctl</command> will
228           wait until it is completed. By passing this argument it is
229           only verified and enqueued.</para>
230         </listitem>
231       </varlistentry>
232
233       <varlistentry>
234         <term><option>--no-legend</option></term>
235
236         <listitem>
237           <para>Do not print a legend, i.e.  the column headers and
238           the footer with hints.</para>
239         </listitem>
240       </varlistentry>
241
242       <varlistentry>
243         <term><option>--no-pager</option></term>
244
245         <listitem>
246           <para>Do not pipe output into a pager.</para>
247         </listitem>
248       </varlistentry>
249
250       <varlistentry>
251         <term><option>--system</option></term>
252
253         <listitem>
254           <para>Talk to the systemd system manager. (Default)</para>
255         </listitem>
256       </varlistentry>
257
258       <varlistentry>
259         <term><option>--user</option></term>
260
261         <listitem>
262           <para>Talk to the systemd manager of the calling
263           user.</para>
264         </listitem>
265       </varlistentry>
266
267       <varlistentry>
268         <term><option>--no-wall</option></term>
269
270         <listitem>
271           <para>Don't send wall message before halt, power-off,
272           reboot.</para>
273         </listitem>
274       </varlistentry>
275
276       <varlistentry>
277         <term><option>--global</option></term>
278
279         <listitem>
280           <para>When used with <command>enable</command> and
281           <command>disable</command>, operate on the global user
282           configuration directory, thus enabling or disabling a unit
283           file globally for all future logins of all users.</para>
284         </listitem>
285       </varlistentry>
286
287       <varlistentry>
288         <term><option>--no-reload</option></term>
289
290         <listitem>
291           <para>When used with <command>enable</command> and
292           <command>disable</command>, do not implicitly reload daemon
293           configuration after executing the changes.</para>
294         </listitem>
295       </varlistentry>
296
297       <varlistentry>
298         <term><option>--no-ask-password</option></term>
299
300         <listitem>
301           <para>When used with <command>start</command> and related
302           commands, disables asking for passwords. Background services
303           may require input of a password or passphrase string, for
304           example to unlock system hard disks or cryptographic
305           certificates. Unless this option is specified and the
306           command is invoked from a terminal
307           <command>systemctl</command> will query the user on the
308           terminal for the necessary secrets. Use this option to
309           switch this behavior off. In this case the password must be
310           supplied by some other means (for example graphical password
311           agents) or the service might fail. This also disables
312           querying the user for authentication for privileged
313           operations.</para>
314         </listitem>
315
316       </varlistentry>
317
318       <varlistentry>
319         <term><option>--kill-who=</option></term>
320
321         <listitem>
322           <para>When used with <command>kill</command>, choose which
323           processes to kill. Must be one of <option>main</option>,
324           <option>control</option> or <option>all</option> to select
325           whether to kill only the main process of the unit, the
326           control process or all processes of the unit. If omitted
327           defaults to <option>all</option>.</para>
328         </listitem>
329
330       </varlistentry>
331
332       <varlistentry>
333         <term><option>-s</option></term>
334         <term><option>--signal=</option></term>
335
336         <listitem>
337           <para>When used with <command>kill</command>, choose which
338           signal to send to selected processes. Must be one of the
339           well known signal specifiers such as SIGTERM, SIGINT or
340           SIGSTOP. If omitted defaults to
341           <option>SIGTERM</option>.</para>
342         </listitem>
343       </varlistentry>
344
345       <varlistentry>
346         <term><option>-f</option></term>
347         <term><option>--force</option></term>
348
349         <listitem>
350           <para>When used with <command>enable</command>, overwrite
351           any existing conflicting symlinks.</para>
352
353           <para>When used with <command>halt</command>,
354           <command>poweroff</command>, <command>reboot</command> or
355           <command>kexec</command> execute the selected operation
356           without shutting down all units. However, all processes will
357           be killed forcibly and all file systems are unmounted or
358           remounted read-only. This is hence a drastic but relatively
359           safe option to request an immediate reboot. If
360           <option>--force</option> is specified twice for these
361           operations, they will be executed immediately without
362           terminating any processes or umounting any file
363           systems. Warning: specifying <option>--force</option> twice
364           with any of these operations might result in data
365           loss.</para>
366         </listitem>
367       </varlistentry>
368
369       <varlistentry>
370         <term><option>--root=</option></term>
371
372         <listitem>
373           <para>When used with
374           <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
375           (and related commands), use alternative root path when
376           looking for unit files.</para>
377         </listitem>
378
379       </varlistentry>
380
381       <varlistentry>
382         <term><option>--runtime</option></term>
383
384         <listitem>
385           <para>When used with
386           <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
387           (and related commands), make changes only temporarily, so
388           that they are dropped on the next reboot. This will have the
389           effect that changes are not made in subdirectories of
390           <filename>/etc</filename> but in <filename>/run</filename>,
391           with identical immediate effects, however, since the latter
392           is lost on reboot, the changes are lost too.</para>
393         </listitem>
394       </varlistentry>
395
396       <varlistentry>
397         <term><option>-H</option></term>
398         <term><option>--host</option></term>
399
400         <listitem>
401           <para>Execute operation remotely. Specify a hostname, or
402           username and hostname separated by @, to connect to. This
403           will use SSH to talk to the remote systemd
404           instance.</para>
405         </listitem>
406       </varlistentry>
407
408       <varlistentry>
409         <term><option>-P</option></term>
410         <term><option>--privileged</option></term>
411
412         <listitem>
413           <para>Acquire privileges via PolicyKit before executing the
414           operation.</para>
415         </listitem>
416       </varlistentry>
417
418       <varlistentry>
419         <term><option>-n</option></term>
420         <term><option>--lines=</option></term>
421
422         <listitem>
423           <para>When used with <command>status</command> controls the
424           number of journal lines to show, counting from the most
425           recent ones. Takes a positive integer argument. Defaults to
426           10.</para>
427         </listitem>
428       </varlistentry>
429
430       <varlistentry>
431         <term><option>-o</option></term>
432         <term><option>--output=</option></term>
433
434         <listitem>
435           <para>When used with <command>status</command> controls the
436           formatting of the journal entries that are shown. For the
437           available choices see
438           <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
439           Defaults to <literal>short</literal>.</para>
440         </listitem>
441       </varlistentry>
442
443     </variablelist>
444   </refsect1>
445
446   <refsect1>
447     <title>Commands</title>
448
449     <para>The following commands are understood:</para>
450
451     <variablelist>
452       <varlistentry>
453         <term><command>list-units</command></term>
454
455         <listitem>
456           <para>List known units (subject to limitations specified
457           with <option>-t</option>).</para>
458
459           <para>This is the default command.</para>
460         </listitem>
461       </varlistentry>
462       <varlistentry>
463         <term><command>start <replaceable>NAME</replaceable>...</command></term>
464
465         <listitem>
466           <para>Start (activate) one or more units specified on the
467           command line.</para>
468         </listitem>
469       </varlistentry>
470       <varlistentry>
471         <term><command>stop <replaceable>NAME</replaceable>...</command></term>
472
473         <listitem>
474           <para>Stop (deactivate) one or more units specified on the
475           command line.</para>
476         </listitem>
477       </varlistentry>
478       <varlistentry>
479         <term><command>reload <replaceable>NAME</replaceable>...</command></term>
480
481         <listitem>
482           <para>Asks all units listed on the command line to reload
483           their configuration. Note that this will reload the
484           service-specific configuration, not the unit configuration
485           file of systemd. If you want systemd to reload the
486           configuration file of a unit use the
487           <command>daemon-reload</command> command. In other words:
488           for the example case of Apache, this will reload Apache's
489           <filename>httpd.conf</filename> in the web server, not the
490           <filename>apache.service</filename> systemd unit
491           file. </para>
492
493           <para>This command should not be confused with the
494           <command>daemon-reload</command> or <command>load</command>
495           commands.</para>
496         </listitem>
497
498       </varlistentry>
499       <varlistentry>
500         <term><command>restart <replaceable>NAME</replaceable>...</command></term>
501
502         <listitem>
503           <para>Restart one or more units specified on the command
504           line. If the units are not running yet they will be
505           started.</para>
506         </listitem>
507       </varlistentry>
508       <varlistentry>
509         <term><command>try-restart <replaceable>NAME</replaceable>...</command></term>
510
511         <listitem>
512           <para>Restart one or more units specified on the command
513           line if the units are running. Do nothing if units are not
514           running.  Note that for compatibility with Red Hat init
515           scripts <command>condrestart</command> is equivalent to this
516           command.</para>
517         </listitem>
518       </varlistentry>
519       <varlistentry>
520         <term><command>reload-or-restart <replaceable>NAME</replaceable>...</command></term>
521
522         <listitem>
523           <para>Reload one or more units if they support it. If not,
524           restart them instead. If the units are not running yet they
525           will be started.</para>
526         </listitem>
527       </varlistentry>
528       <varlistentry>
529         <term><command>reload-or-try-restart <replaceable>NAME</replaceable>...</command></term>
530
531         <listitem>
532           <para>Reload one or more units if they support it. If not,
533           restart them instead. Do nothing if the units are not
534           running. Note that for compatibility with SysV init scripts
535           <command>force-reload</command> is equivalent to this
536           command.</para>
537         </listitem>
538       </varlistentry>
539       <varlistentry>
540         <term><command>isolate <replaceable>NAME</replaceable></command></term>
541
542         <listitem>
543           <para>Start the unit specified on the command line and its
544           dependencies and stop all others.</para>
545
546           <para>This is similar to changing the runlevel in a
547           traditional init system. The <command>isolate</command>
548           command will immediately stop processes that are not enabled
549           in the new unit, possibly including the graphical
550           environment or terminal you are currently using.</para>
551
552           <para>Note that this is allowed only on units where
553           <option>AllowIsolate=</option> is enabled. See
554           <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
555           for details.</para>
556         </listitem>
557       </varlistentry>
558       <varlistentry>
559         <term><command>kill <replaceable>NAME</replaceable>...</command></term>
560
561         <listitem>
562           <para>Send a signal to one or more processes of the
563           unit. Use <option>--kill-who=</option> to select which
564           process to kill. Use <option>--kill-mode=</option> to select
565           the kill mode and <option>--signal=</option> to select the
566           signal to send.</para>
567         </listitem>
568       </varlistentry>
569       <varlistentry>
570         <term><command>is-active <replaceable>NAME</replaceable>...</command></term>
571
572         <listitem>
573           <para>Check whether any of the specified units are active
574           (i.e. running). Returns an exit code 0 if at least one is
575           active, non-zero otherwise. Unless <option>--quiet</option>
576           is specified this will also print the current unit state to
577           STDOUT.</para>
578         </listitem>
579       </varlistentry>
580       <varlistentry>
581         <term><command>is-failed <replaceable>NAME</replaceable>...</command></term>
582
583         <listitem>
584           <para>Check whether any of the specified units are failed.
585           Returns an exit code 0 if at least one is failed, non-zero
586           otherwise. Unless <option>--quiet</option> is specified this
587           will also print the current unit state to
588           STDOUT.</para>
589         </listitem>
590       </varlistentry>
591       <varlistentry>
592         <term><command>status [<replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...]</command></term>
593
594         <listitem>
595           <para>Show terse runtime status information about one or
596           more units, followed by most recent log data from the
597           journal. If no units are specified, show all units (subject
598           to limitations specified with <option>-t</option>). If a PID
599           is passed show information about the unit the process
600           belongs to.</para>
601
602           <para>This function is intended to generate human-readable
603           output. If you are looking for computer-parsable output, use
604           <command>show</command> instead.</para>
605         </listitem>
606       </varlistentry>
607       <varlistentry>
608         <term><command>show [<replaceable>NAME</replaceable>...|<replaceable>JOB</replaceable>...]</command></term>
609
610         <listitem>
611           <para>Show properties of one or more units, jobs, or the
612           manager itself. If no argument is specified properties of
613           the manager will be shown. If a unit name is specified
614           properties of the unit is shown, and if a job id is
615           specified properties of the job is shown. By default, empty
616           properties are suppressed. Use <option>--all</option> to
617           show those too. To select specific properties to show use
618           <option>--property=</option>. This command is intended to be
619           used whenever computer-parsable output is required. Use
620           <command>status</command> if you are looking for formatted
621           human-readable output.</para>
622         </listitem>
623       </varlistentry>
624       <varlistentry>
625         <term><command>help <replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...</command></term>
626
627         <listitem>
628           <para>Show manual pages for one or more units, if
629           available. If a PID is passed the manual pages for the unit
630           the process of the PID belongs to is
631           shown.</para>
632         </listitem>
633       </varlistentry>
634       <varlistentry>
635         <term><command>reset-failed [<replaceable>NAME</replaceable>...]</command></term>
636
637         <listitem>
638           <para>Reset the <literal>failed</literal> state of the
639           specified units, or if no unit name is passed of all
640           units. When a unit fails in some way (i.e. process exiting
641           with non-zero error code, terminating abnormally or timing
642           out) it will automatically enter the
643           <literal>failed</literal> state and its exit code and status
644           is recorded for introspection by the administrator until the
645           service is restarted or reset with this command.</para>
646         </listitem>
647       </varlistentry>
648
649       <varlistentry>
650         <term><command>list-unit-files</command></term>
651
652         <listitem>
653           <para>List installed unit files.</para>
654         </listitem>
655       </varlistentry>
656
657       <varlistentry>
658         <term><command>enable <replaceable>NAME</replaceable>...</command></term>
659
660         <listitem>
661           <para>Enable one or more unit files or unit file instances,
662           as specified on the command line. This will create a number
663           of symlinks as encoded in the <literal>[Install]</literal>
664           sections of the unit files. After the symlinks have been
665           created the systemd configuration is reloaded (in a way that
666           is equivalent to <command>daemon-reload</command>) to ensure
667           the changes are taken into account immediately. Note that
668           this does not have the effect that any of the units enabled
669           are also started at the same time. If this is desired a
670           separate <command>start</command> command must be invoked
671           for the unit. Also note that in case of instance enablement,
672           symlinks named same as instances are created in install
673           location, however they all point to the same template unit
674           file.</para>
675
676           <para>This command will print the actions executed. This
677           output may be suppressed by passing <option>--quiet</option>.
678           </para>
679
680           <para>Note that this operation creates only the suggested
681           symlinks for the units. While this command is the
682           recommended way to manipulate the unit configuration
683           directory, the administrator is free to make additional
684           changes manually, by placing or removing symlinks in the
685           directory. This is particularly useful to create
686           configurations that deviate from the suggested default
687           installation. In this case the administrator must make sure
688           to invoke <command>daemon-reload</command> manually as
689           necessary, to ensure his changes are taken into account.
690           </para>
691
692           <para>Enabling units should not be confused with starting
693           (activating) units, as done by the <command>start</command>
694           command. Enabling and starting units is orthogonal: units
695           may be enabled without being started and started without
696           being enabled. Enabling simply hooks the unit into various
697           suggested places (for example, so that the unit is
698           automatically started on boot or when a particular kind of
699           hardware is plugged in). Starting actually spawns the daemon
700           process (in case of service units), or binds the socket (in
701           case of socket units), and so on.</para>
702
703           <para>Depending on whether <option>--system</option>,
704           <option>--user</option> or <option>--global</option> is
705           specified this enables the unit for the system, for the
706           calling user only or for all future logins of all
707           users. Note that in the last case no systemd daemon
708           configuration is reloaded.</para>
709         </listitem>
710       </varlistentry>
711
712       <varlistentry>
713         <term><command>disable <replaceable>NAME</replaceable>...</command></term>
714
715         <listitem>
716           <para>Disables one or more units. This removes all symlinks
717           to the specified unit files from the unit configuration
718           directory, and hence undoes the changes made by
719           <command>enable</command>. Note however that this removes
720           all symlinks to the unit files (i.e. including manual
721           additions), not just those actually created by
722           <command>enable</command>. This call implicitly reloads the
723           systemd daemon configuration after completing the disabling
724           of the units. Note that this command does not implicitly
725           stop the units that are being disabled. If this is desired
726           an additional <command>stop</command> command should be
727           executed afterwards.</para>
728
729           <para>This command will print the actions executed. This
730           output may be suppressed by passing <option>--quiet</option>.
731           </para>
732
733           <para>This command honors <option>--system</option>,
734           <option>--user</option>, <option>--global</option> in a
735           similar way as <command>enable</command>.</para>
736         </listitem>
737       </varlistentry>
738
739       <varlistentry>
740         <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
741
742         <listitem>
743           <para>Checks whether any of the specified unit files are
744           enabled (as with <command>enable</command>). Returns an exit
745           code of 0 if at least one is enabled, non-zero
746           otherwise. Prints the current enable status. To suppress
747           this output use <option>--quiet</option>.</para>
748         </listitem>
749       </varlistentry>
750
751       <varlistentry>
752         <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
753
754         <listitem>
755           <para>Reenable one or more unit files, as specified on the
756           command line. This is a combination of
757           <command>disable</command> and <command>enable</command> and
758           is useful to reset the symlinks a unit is enabled with to
759           the defaults configured in the <literal>[Install]</literal>
760           section of the unit file.</para>
761         </listitem>
762       </varlistentry>
763
764       <varlistentry>
765         <term><command>preset <replaceable>NAME</replaceable>...</command></term>
766
767         <listitem>
768           <para>Reset one or more unit files, as specified on the
769           command line, to the defaults configured in the preset
770           policy files. This has the same effect as
771           <command>disable</command> or <command>enable</command>,
772           depending how the unit is listed in the preset files. For
773           more information on preset policy format see
774           <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
775           For more information on the concept of presets please
776           consult the
777           <ulink url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
778           document.</para>
779         </listitem>
780       </varlistentry>
781
782       <varlistentry>
783         <term><command>mask <replaceable>NAME</replaceable>...</command></term>
784
785         <listitem>
786           <para>Mask one or more unit files, as specified on the
787           command line. This will link these units to
788           <filename>/dev/null</filename>, making it impossible to
789           start them. This is a stronger version of
790           <command>disable</command>, since it prohibits all kinds of
791           activation of the unit, including manual activation. Use
792           this option with care.</para>
793         </listitem>
794       </varlistentry>
795
796       <varlistentry>
797         <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
798
799         <listitem>
800           <para>Unmask one or more unit files, as specified on the
801           command line. This will undo the effect of
802           <command>mask</command>.</para>
803         </listitem>
804       </varlistentry>
805
806       <varlistentry>
807         <term><command>link <replaceable>FILENAME</replaceable>...</command></term>
808
809         <listitem>
810           <para>Link a unit file that is not in the unit file search
811           paths into the unit file search path. This requires an
812           absolute path to a unit file. The effect of this can be
813           undone with <command>disable</command>. The effect of this
814           command is that a unit file is available for
815           <command>start</command> and other commands although it
816           isn't installed directly in the unit search path.</para>
817         </listitem>
818       </varlistentry>
819
820       <varlistentry>
821         <term><command>load <replaceable>NAME</replaceable>...</command></term>
822
823         <listitem>
824           <para>Load one or more units specified on the command
825           line. This will simply load their configuration from disk,
826           but not start them. To start them you need to use the
827           <command>start</command> command which will implicitly load
828           a unit that has not been loaded yet. Note that systemd
829           garbage collects loaded units that are not active or
830           referenced by an active unit. This means that units loaded
831           this way will usually not stay loaded for long. Also note
832           that this command cannot be used to reload unit
833           configuration. Use the <command>daemon-reload</command>
834           command for that. All in all, this command is of little use
835           except for debugging.</para>
836
837           <para>This command should not be confused with the
838           <command>daemon-reload</command> or
839           <command>reload</command>.</para>
840         </listitem>
841       </varlistentry>
842       <varlistentry>
843         <term><command>list-jobs</command></term>
844
845         <listitem>
846           <para>List jobs that are in progress.</para>
847         </listitem>
848       </varlistentry>
849       <varlistentry>
850         <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
851
852         <listitem>
853           <para>Cancel one or more jobs specified on the command line
854           by their numeric job IDs. If no job id is specified, cancel
855           all pending jobs.</para>
856         </listitem>
857       </varlistentry>
858       <varlistentry>
859         <term><command>dump</command></term>
860
861         <listitem>
862           <para>Dump server status. This will output a (usually very
863           long) human readable manager status dump. Its format is
864           subject to change without notice and should not be parsed by
865           applications.</para>
866         </listitem>
867       </varlistentry>
868       <varlistentry>
869         <term><command>list-dependencies <replaceable>NAME</replaceable></command></term>
870
871         <listitem>
872           <para>Shows required and wanted units of the specified
873           unit. If no unit is specified
874           <filename>default.target</filename> is implied. Target units
875           are recursively expanded.  When <option>--all</option> is
876           passed all other units are recursively expanded as
877           well.</para>
878         </listitem>
879       </varlistentry>
880       <varlistentry>
881         <term><command>snapshot [<replaceable>NAME</replaceable>]</command></term>
882
883         <listitem>
884           <para>Create a snapshot. If a snapshot name is specified,
885           the new snapshot will be named after it. If none is
886           specified an automatic snapshot name is generated. In either
887           case, the snapshot name used is printed to STDOUT, unless
888           <option>--quiet</option> is specified.</para>
889
890           <para>A snapshot refers to a saved state of the systemd
891           manager. It is implemented itself as a unit that is
892           generated dynamically with this command and has dependencies
893           on all units active at the time. At a later time the user
894           may return to this state by using the
895           <command>isolate</command> command on the snapshot unit.
896           </para>
897
898           <para>Snapshots are only useful for saving and restoring
899           which units are running or are stopped, they do not
900           save/restore any other state. Snapshots are dynamic and lost
901           on reboot.</para>
902         </listitem>
903       </varlistentry>
904       <varlistentry>
905         <term><command>delete <replaceable>NAME</replaceable>...</command></term>
906
907         <listitem>
908           <para>Remove a snapshot previously created with
909           <command>snapshot</command>.</para>
910         </listitem>
911       </varlistentry>
912       <varlistentry>
913         <term><command>daemon-reload</command></term>
914
915         <listitem>
916           <para>Reload systemd manager configuration. This will reload
917           all unit files and recreate the entire dependency
918           tree. While the daemon is reloaded, all sockets systemd
919           listens on on behalf of user configuration will stay
920           accessible.</para> <para>This command should not be confused
921           with the <command>load</command> or
922           <command>reload</command> commands.</para>
923         </listitem>
924       </varlistentry>
925       <varlistentry>
926         <term><command>daemon-reexec</command></term>
927
928         <listitem>
929           <para>Reexecute the systemd manager. This will serialize the
930           manager state, reexecute the process and deserialize the
931           state again. This command is of little use except for
932           debugging and package upgrades. Sometimes it might be
933           helpful as a heavy-weight <command>daemon-reload</command>.
934           While the daemon is reexecuted all sockets systemd listens
935           on on behalf of user configuration will stay accessible.
936           </para>
937         </listitem>
938       </varlistentry>
939       <varlistentry>
940         <term><command>show-environment</command></term>
941
942         <listitem>
943           <para>Dump the systemd manager environment block. The
944           environment block will be dumped in straight-forward form
945           suitable for sourcing into a shell script. This environment
946           block will be passed to all processes the manager
947           spawns.</para>
948         </listitem>
949       </varlistentry>
950       <varlistentry>
951         <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
952
953         <listitem>
954           <para>Set one or more systemd manager environment variables,
955           as specified on the command line.</para>
956         </listitem>
957       </varlistentry>
958       <varlistentry>
959         <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
960
961         <listitem>
962           <para>Unset one or more systemd manager environment
963           variables. If only a variable name is specified it will be
964           removed regardless of its value. If a variable and a value
965           are specified the variable is only removed if it has the
966           specified value.</para>
967         </listitem>
968       </varlistentry>
969       <varlistentry>
970         <term><command>default</command></term>
971
972         <listitem>
973           <para>Enter default mode. This is mostly equivalent to
974           <command>start default.target</command>.</para>
975         </listitem>
976       </varlistentry>
977       <varlistentry>
978         <term><command>rescue</command></term>
979
980         <listitem>
981           <para>Enter rescue mode. This is mostly equivalent to
982           <command>isolate rescue.target</command> but also prints a
983           wall message to all users.</para>
984         </listitem>
985       </varlistentry>
986       <varlistentry>
987         <term><command>emergency</command></term>
988
989         <listitem>
990           <para>Enter emergency mode. This is mostly equivalent to
991           <command>isolate emergency.target</command> but also prints
992           a wall message to all users.</para>
993         </listitem>
994       </varlistentry>
995       <varlistentry>
996         <term><command>halt</command></term>
997
998         <listitem>
999           <para>Shut down and halt the system. This is mostly
1000           equivalent to <command>start halt.target</command> but also
1001           prints a wall message to all users.  If combined with
1002           <option>--force</option> shutdown of all running services is
1003           skipped, however all processes are killed and all file
1004           systems are unmounted or mounted read-only, immediately
1005           followed by the system halt.  If <option>--force</option> is
1006           specified twice the operation is immediately executed
1007           without terminating any processes or unmounting any file
1008           systems. This may result in data loss.</para>
1009         </listitem>
1010       </varlistentry>
1011       <varlistentry>
1012         <term><command>poweroff</command></term>
1013
1014         <listitem>
1015           <para>Shut down and power-off the system. This is mostly
1016           equivalent to <command>start poweroff.target</command> but
1017           also prints a wall message to all users. If combined with
1018           <option>--force</option> shutdown of all running services is
1019           skipped, however all processes are killed and all file
1020           systems are unmounted or mounted read-only, immediately
1021           followed by the powering off. If <option>--force</option> is
1022           specified twice the operation is immediately executed
1023           without terminating any processes or unmounting any file
1024           systems. This may result in data loss.</para>
1025         </listitem>
1026       </varlistentry>
1027       <varlistentry>
1028         <term><command>reboot</command></term>
1029
1030         <listitem>
1031           <para>Shut down and reboot the system. This is mostly
1032           equivalent to <command>start reboot.target</command> but
1033           also prints a wall message to all users. If combined with
1034           <option>--force</option> shutdown of all running services is
1035           skipped, however all processes are killed and all file
1036           systems are unmounted or mounted read-only, immediately
1037           followed by the reboot. If <option>--force</option> is
1038           specified twice the operation is immediately executed
1039           without terminating any processes or unmounting any file
1040           systems. This may result in data loss.</para>
1041         </listitem>
1042       </varlistentry>
1043       <varlistentry>
1044         <term><command>kexec</command></term>
1045
1046         <listitem>
1047           <para>Shut down and reboot the system via kexec. This is
1048           mostly equivalent to <command>start kexec.target</command>
1049           but also prints a wall message to all users. If combined
1050           with <option>--force</option> shutdown of all running
1051           services is skipped, however all processes are killed and
1052           all file systems are unmounted or mounted read-only,
1053           immediately followed by the reboot.</para>
1054         </listitem>
1055       </varlistentry>
1056       <varlistentry>
1057         <term><command>exit</command></term>
1058
1059         <listitem>
1060           <para>Ask the systemd manager to quit. This is only
1061           supported for user service managers (i.e. in conjunction
1062           with the <option>--user</option> option) and will fail
1063           otherwise.</para>
1064         </listitem>
1065
1066       </varlistentry>
1067       <varlistentry>
1068         <term><command>suspend</command></term>
1069
1070         <listitem>
1071           <para>Suspend the system. This will trigger activation of
1072           the special <filename>suspend.target</filename> target.
1073           </para>
1074         </listitem>
1075       </varlistentry>
1076       <varlistentry>
1077         <term><command>hibernate</command></term>
1078
1079         <listitem>
1080           <para>Hibernate the system. This will trigger activation of
1081           the special <filename>hibernate.target</filename> target.
1082           </para>
1083         </listitem>
1084       </varlistentry>
1085       <varlistentry>
1086         <term><command>hybrid-sleep</command></term>
1087
1088         <listitem>
1089           <para>Hibernate and suspend the system. This will trigger
1090           activation of the special
1091           <filename>hybrid-sleep.target</filename> target.</para>
1092         </listitem>
1093       </varlistentry>
1094       <varlistentry>
1095         <term><command>switch-root <replaceable>ROOT</replaceable> [<replaceable>INIT</replaceable>]</command></term>
1096
1097         <listitem>
1098           <para>Switches to a different root directory and executes a
1099           new system manager process below it. This is intended for
1100           usage in initial RAM disks ("initrd"), and will transition
1101           from the initrd's system manager process (a.k.a "init"
1102           process) to the main system manager process. Takes two
1103           arguments: the directory to make the new root directory, and
1104           the path to the new system manager binary below it to
1105           execute as PID 1. If the latter is omitted or the empty
1106           string, a systemd binary will automatically be searched for
1107           and used as init. If the system manager path is omitted or
1108           equal to the empty string the state of the initrd's system
1109           manager process is passed to the main system manager, which
1110           allows later introspection of the state of the services
1111           involved in the initrd boot.</para>
1112         </listitem>
1113       </varlistentry>
1114     </variablelist>
1115
1116   </refsect1>
1117
1118   <refsect1>
1119     <title>Exit status</title>
1120
1121     <para>On success 0 is returned, a non-zero failure
1122     code otherwise.</para>
1123   </refsect1>
1124
1125   <refsect1>
1126     <title>Environment</title>
1127
1128     <variablelist class='environment-variables'>
1129       <varlistentry>
1130         <term><varname>$SYSTEMD_PAGER</varname></term>
1131
1132         <listitem>
1133           <para>Pager to use when <option>--no-pager</option> is not
1134           given; overrides <varname>$PAGER</varname>.  Setting this to
1135           an empty string or the value <literal>cat</literal> is
1136           equivalent to passing
1137           <option>--no-pager</option>.</para>
1138         </listitem>
1139       </varlistentry>
1140     </variablelist>
1141   </refsect1>
1142
1143   <refsect1>
1144     <title>See Also</title>
1145     <para>
1146       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1147       <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1148       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1149       <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1150       <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1151       <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1152       <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1153       <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
1154     </para>
1155   </refsect1>
1156
1157 </refentry>