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