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