]> git.ipfire.org Git - thirdparty/systemd.git/blob - man/systemctl.xml
systemctl: fold systemd-install into systemctl
[thirdparty/systemd.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 General Public License as published by
12 the Free Software Foundation; either version 2 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 General Public License for more details.
19
20 You should have received a copy of the GNU 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 session manager</refpurpose>
48 </refnamediv>
49
50 <refsynopsisdiv>
51 <cmdsynopsis>
52 <command>systemctl <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="req">COMMAND</arg> <arg choice="opt" rep="repeat">NAME</arg></command>
53 </cmdsynopsis>
54 </refsynopsisdiv>
55
56 <refsect1>
57 <title>Description</title>
58
59 <para><command>systemctl</command> may be used to
60 introspect and control the state of the
61 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
62 system and session manager.</para>
63 </refsect1>
64
65 <refsect1>
66 <title>Options</title>
67
68 <para>The following options are understood:</para>
69
70 <variablelist>
71 <varlistentry>
72 <term><option>--help</option></term>
73 <term><option>-h</option></term>
74
75 <listitem><para>Prints a short help
76 text and exits.</para></listitem>
77 </varlistentry>
78
79 <varlistentry>
80 <term><option>--type=</option></term>
81 <term><option>-t</option></term>
82
83 <listitem><para>When listing units,
84 limit display to certain unit
85 types. If not specified units of all
86 types will be shown. The argument
87 should be a unit type name such as
88 <option>service</option>,
89 <option>socket</option> and
90 similar.</para></listitem>
91 </varlistentry>
92
93 <varlistentry>
94 <term><option>--property=</option></term>
95 <term><option>-p</option></term>
96
97 <listitem><para>When showing
98 unit/job/manager information, limit
99 display to certain properties as
100 specified as argument. If not
101 specified all set properties are
102 shown. The argument should be a
103 property name, such as
104 <literal>MainPID</literal>. If
105 specified more than once all
106 properties with the specified names
107 are shown.</para></listitem>
108 </varlistentry>
109
110 <varlistentry>
111 <term><option>--all</option></term>
112 <term><option>-a</option></term>
113
114 <listitem><para>When listing units,
115 show all units, regardless of their
116 state, including inactive units. When
117 showing unit/job/manager information,
118 show all properties regardless whether
119 they are set or not.</para></listitem>
120 </varlistentry>
121
122 <varlistentry>
123 <term><option>--full</option></term>
124
125 <listitem><para>Do not ellipsize unit
126 names in the output of
127 <command>list-units</command> and
128 <command>list-jobs</command>.</para></listitem>
129 </varlistentry>
130
131 <varlistentry>
132 <term><option>--fail</option></term>
133
134 <listitem><para>If the requested
135 operation conflicts with a pending
136 unfinished job, fail the command. If
137 this is not specified the requested
138 operation will replace the pending job,
139 if necessary.</para></listitem>
140 </varlistentry>
141
142 <varlistentry>
143 <term><option>--quiet</option></term>
144 <term><option>-q</option></term>
145
146 <listitem><para>Suppress output to
147 STDOUT in
148 <command>snapshot</command>,
149 <command>check</command>,
150 <command>enable</command> and
151 <command>disable</command>.</para></listitem>
152 </varlistentry>
153
154 <varlistentry>
155 <term><option>--no-block</option></term>
156
157 <listitem><para>Do not synchronously wait for
158 the requested operation to finish. If this is
159 not specified the job will be verified,
160 enqueued and <command>systemctl</command> will
161 wait until it is completed. By passing this
162 argument it is only verified and
163 enqueued.</para></listitem> </varlistentry>
164
165 <varlistentry>
166 <term><option>--system</option></term>
167
168 <listitem><para>Talk to the systemd
169 system manager. (Default)</para></listitem>
170 </varlistentry>
171
172 <varlistentry>
173 <term><option>--session</option></term>
174
175 <listitem><para>Talk to the systemd
176 session manager of the calling user.</para></listitem>
177 </varlistentry>
178
179 <varlistentry>
180 <term><option>--order</option></term>
181 <term><option>--require</option></term>
182
183 <listitem><para>When used in
184 conjunction with the
185 <command>dot</command> command (see
186 below), selects which dependencies are
187 shown in the dependency graph. If
188 <option>--order</option> is passed
189 only dependencies of type
190 <varname>After=</varname> or
191 <varname>Before=</varname> are
192 shown. If <option>--require</option>
193 is passed only dependencies of type
194 <varname>Requires=</varname>,
195 <varname>RequiresOverridable=</varname>,
196 <varname>Requisite=</varname>,
197 <varname>RequisiteOverridable=</varname>,
198 <varname>Wants=</varname> and
199 <varname>Conflicts=</varname> are
200 shown. If neither is passed, shows
201 dependencies of all these
202 types.</para></listitem>
203 </varlistentry>
204
205 <varlistentry>
206 <term><option>--no-wall</option></term>
207
208 <listitem><para>Don't send wall
209 message before
210 halt, power-off, reboot.</para></listitem>
211 </varlistentry>
212
213 <varlistentry>
214 <term><option>--global</option></term>
215
216 <listitem><para>When used with
217 <command>enable</command> and
218 <command>disable</command>, operate on the
219 global session configuŕation
220 directory, thus enabling or disabling
221 a unit file globally for all future
222 sessions of all users.</para></listitem>
223 </varlistentry>
224
225 <varlistentry>
226 <term><option>--no-reload</option></term>
227
228 <listitem><para>When used with
229 <command>enable</command> and
230 <command>disable</command>, do not
231 implicitly reload daemon configuration
232 after executing the
233 changes.</para></listitem>
234 </varlistentry>
235
236 <varlistentry>
237 <term><option>--force</option></term>
238
239 <listitem><para>When used with
240 <command>enable</command>, override any
241 existing conflicting
242 symlinks.</para></listitem>
243 </varlistentry>
244
245 <varlistentry>
246 <term><option>--defaults</option></term>
247
248 <listitem><para>When used with
249 <command>disable</command>, ensures
250 that only the symlinks created by
251 <command>enable</command> are removed,
252 not all symlinks pointing to the unit
253 file that shall be
254 disabled.</para></listitem>
255 </varlistentry>
256 </variablelist>
257
258 <para>The following commands are understood:</para>
259
260 <variablelist>
261 <varlistentry>
262 <term><command>list-units</command></term>
263
264 <listitem><para>List known units.</para></listitem>
265 </varlistentry>
266 <varlistentry>
267 <term><command>start [NAME...]</command></term>
268
269 <listitem><para>Start (activate) one
270 or more units specified on the command
271 line.</para></listitem>
272 </varlistentry>
273 <varlistentry>
274 <term><command>stop [NAME...]</command></term>
275
276 <listitem><para>Stop (deactivate) one
277 or more units specified on the command
278 line.</para></listitem>
279 </varlistentry>
280 <varlistentry>
281 <term><command>reload [NAME...]</command></term>
282
283 <listitem><para>Asks all units listed
284 on the command line to reload their
285 configuration. Note that this will
286 reload the service-specific
287 configuration, not the unit
288 configuration file of systemd. If you
289 want systemd to reload the
290 configuration file of a unit use the
291 <command>daemon-reload</command>
292 command. In other words: for the
293 example case of Apache, this will
294 reload Apache's
295 <filename>httpd.conf</filename> in the
296 web server, not the
297 <filename>apache.service</filename>
298 systemd unit file. </para>
299
300 <para>This command should not be
301 confused with the
302 <command>daemon-reload</command> or
303 <command>load</command>
304 commands.</para></listitem>
305
306 </varlistentry>
307 <varlistentry>
308 <term><command>restart [NAME...]</command></term>
309
310 <listitem><para>Restart one or more
311 units specified on the command
312 line. If the units are not running yet
313 they will be
314 started.</para></listitem>
315 </varlistentry>
316 <varlistentry>
317 <term><command>try-restart [NAME...]</command></term>
318
319 <listitem><para>Restart one or more
320 units specified on the command
321 line. If the units are not running yet
322 the operation will
323 fail.</para></listitem>
324 </varlistentry>
325 <varlistentry>
326 <term><command>reload-or-restart [NAME...]</command></term>
327 <term><command>reload-or-try-restart [NAME...]</command></term>
328
329 <listitem><para>Reload one or more
330 units if they support it. If not,
331 restart them instead. Note that for
332 compatibility with SysV and Red Hat
333 init scripts
334 <command>force-reload</command> and
335 <command>condrestart</command> may be
336 used as equivalent commands to
337 <command>reload-or-try-restart</command>.</para></listitem>
338 </varlistentry>
339 <varlistentry>
340 <term><command>isolate [NAME]</command></term>
341
342 <listitem><para>Start the unit
343 specified on the command line and its
344 dependencies and stop all
345 others.</para></listitem>
346 </varlistentry>
347 <varlistentry>
348 <term><command>is-active [NAME...]</command></term>
349
350 <listitem><para>Check whether any of
351 the specified units is active
352 (i.e. running). Returns an exit code
353 0 if at least one is active, non-zero
354 otherwise. Unless
355 <option>--quiet</option> is specified
356 this will also print the current unit
357 state to STDOUT.</para></listitem>
358 </varlistentry>
359 <varlistentry>
360 <term><command>status [NAME...]</command></term>
361
362 <listitem><para>Show terse runtime
363 status information about one or more
364 units. This function is intended to
365 generate human-readable output. If you
366 are looking for computer-parsable
367 output, use <command>show</command>
368 instead.</para></listitem>
369 </varlistentry>
370 <varlistentry>
371 <term><command>show [NAME...|JOB...]</command></term>
372
373 <listitem><para>Show properties of one
374 or more units, jobs or the manager
375 itself. If no argument is specified
376 properties of the manager will be
377 shown. If a unit name is specified
378 properties of the unit is shown, and
379 if a job id is specified properties of
380 the job is shown. By default, empty
381 properties are suppressed. Use
382 <option>--all</option> to show those
383 too. To select specific properties to
384 show use
385 <option>--property=</option>. This
386 command is intended to be used
387 whenever computer-parsable output is
388 required. Use
389 <command>status</command> if you are
390 looking for formatted human-readable
391 output.</para></listitem>
392 </varlistentry>
393
394 <varlistentry>
395 <term><command>reset-maintenance [NAME...]</command></term>
396
397 <listitem><para>Reset maintenance
398 state of the specified units, or if no
399 unit name is passed of all units. When
400 a unit fails in some way (i.e. process
401 exiting with non-zero error code,
402 terminating abnormally or timing out)
403 it will automatically enter
404 maintenance state and its exit codes
405 and status is recorded for
406 introspection by the administrator
407 until the service is restarted or
408 reset with this
409 command.</para></listitem>
410 </varlistentry>
411
412 <varlistentry>
413 <term><command>enable [NAME...]</command></term>
414
415 <listitem><para>Enable one or more
416 unit files, as specified on the
417 command line. This will create a
418 number of symlinks as encoded in the
419 <literal>[Install]</literal> sections
420 of the unit files. After the symlinks
421 have been created the systemd
422 configuration is reloaded (in a way
423 that is equivalent to
424 <command>daemon-reload</command>) to
425 ensure the changes are taken into
426 account immediately. Note that this
427 does not have the effect that any of
428 the units enabled are also started at
429 the same time. If this is desired a
430 seperate <command>start</command>
431 command must be invoked for the
432 unit.</para>
433
434 <para>This command will
435 print the actions executed. This
436 output may be suppressed by passing
437 <option>--quiet</option>.</para>
438
439 <para>Note that this operation creates
440 only the suggested symlinks for the
441 units. While this command is the
442 recommended way to manipulate the unit
443 configuration directory, the
444 administrator is free to make
445 additional changes manually, by
446 placing or removing symlinks in the
447 directory. This is particular useful
448 to create configurations that deviate
449 from the suggested default
450 installation. In this case the
451 administrator must make sure to invoke
452 <command>daemon-reload</command>
453 manually as necessary, to ensure his
454 changes are taken into account.</para>
455
456 <para>Enabling units should not be
457 confused with starting (activating)
458 units, as done by the
459 <command>start</command>
460 command. Enabling and starting units
461 is orthogonal: units may be enabled
462 without being started and started
463 without being enabled. Enabling simply
464 hooks the unit into various suggested
465 places (for example, so that the unit
466 is automatically started on boot or
467 when a particular kind of hardware is
468 plugged in). Starting actually spawns
469 the daemon process (in case of service
470 units), or binds the socket (in case
471 of socket units), and so
472 on.</para>
473
474 <para>Depending on whether
475 <option>--system</option>,
476 <option>--session</option> or
477 <option>--global</option> is specified
478 this enables the unit for the system,
479 for sessions of the calling user only
480 or for all future session of all
481 users. Note that in the latter case no
482 systemd daemon configuration is
483 reloaded.</para>
484 </listitem>
485 </varlistentry>
486
487 <varlistentry>
488 <term><command>disable [NAME...]</command></term>
489
490 <listitem><para>Disables one or more
491 units. This removes all symlinks to
492 the specified unit files from the unit
493 configuration directory, and hence
494 undoes the changes made by
495 <command>enable</command>. Note
496 however that this by default removes
497 all symlinks to the unit files
498 (i.e. including manual additions), not
499 just those actually created by
500 <command>enable</command>. If only the
501 symlinks that are suggested by default
502 shall be removed, pass
503 <option>--defaults</option>. This
504 implicitly reloads the systemd daemon
505 configuration after completing the
506 disabling of the units. Note that this
507 command does not implicitly stop the
508 units that is being disabled. If this
509 is desired an additional
510 <command>stop</command>command should
511 be executed afterwards.</para>
512
513 <para>This command will print the
514 actions executed. This output may be
515 suppressed by passing
516 <option>--quiet</option>.</para>
517 </listitem>
518
519 <para>This command honours
520 <option>--system</option>,
521 <option>--session</option>,
522 <option>--global</option> in a similar
523 way as
524 <command>enable</command>.</para>
525 </varlistentry>
526
527 <varlistentry>
528 <term><command>is-enabled [NAME...]</command></term>
529
530 <listitem><para>Checks whether any of
531 the specified unit files is enabled
532 (as with
533 <command>enable</command>). Returns an
534 exit code of 0 if at least one is
535 enabled, non-zero
536 otherwise.</para></listitem>
537 </varlistentry>
538
539 <varlistentry>
540 <term><command>load [NAME...]</command></term>
541
542 <listitem><para>Load one or more units
543 specified on the command line. This
544 will simply load their configuration
545 from disk, but not start them. To
546 start them you need to use the
547 <command>start</command> command which
548 will implicitly load a unit that has
549 not been loaded yet. Note that systemd
550 garbage collects loaded units that are
551 not active or referenced by an active
552 unit. This means that units loaded
553 this way will usually not stay loaded
554 for long. Also note that this command
555 cannot be used to reload unit
556 configuration. Use the
557 <command>daemon-reload</command>
558 command for that. All in all, this
559 command is of little use except for
560 debugging.</para>
561 <para>This command should not be
562 confused with the
563 <command>daemon-reload</command> or
564 <command>reload</command>
565 commands.</para></listitem>
566 </varlistentry>
567 <varlistentry>
568 <term><command>list-jobs</command></term>
569
570 <listitem><para>List jobs that are in progress.</para></listitem>
571 </varlistentry>
572 <varlistentry>
573 <term><command>cancel [JOB...]</command></term>
574
575 <listitem><para>Cancel one or more
576 jobs specified on the command line by
577 their numeric job
578 IDs. If not job id is specified cancels all jobs that are pending.</para></listitem>
579 </varlistentry>
580 <varlistentry>
581 <term><command>monitor</command></term>
582
583 <listitem><para>Monitor unit/job
584 changes. This is mostly useful for
585 debugging purposes and prints a line
586 each time systemd loads or unloads a
587 unit configuration file, or a unit
588 property changes.</para></listitem>
589 </varlistentry>
590 <varlistentry>
591 <term><command>dump</command></term>
592
593 <listitem><para>Dump server
594 status. This will output a (usually
595 very long) human readable manager
596 status dump. Its format is subject to
597 change without notice and should not
598 be parsed by
599 applications.</para></listitem>
600 </varlistentry>
601 <varlistentry>
602 <term><command>dot</command></term>
603
604 <listitem><para>Generate textual
605 dependency graph description in dot
606 format for further processing with the
607 GraphViz
608 <citerefentry><refentrytitle>dot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
609 tool. Use a command line like
610 <command>systemctl dot | dot -Tsvg >
611 systemd.svg</command> to generate a
612 graphical dependency tree. Unless
613 <option>--order</option> or
614 <option>--require</option> is passed
615 the generated graph will show both
616 ordering and requirement
617 dependencies.</para></listitem>
618 </varlistentry>
619 <varlistentry>
620 <term><command>snapshot [NAME]</command></term>
621
622 <listitem><para>Create a snapshot. If
623 a snapshot name is specified, the new
624 snapshot will be named after it. If
625 none is specified an automatic
626 snapshot name is generated. In either
627 case, the snapshot name used is
628 printed to STDOUT, unless
629 <option>--quiet</option> is
630 specified.</para>
631
632 <para>A snapshot refers to a saved
633 state of the systemd manager. It is
634 implemented itself as unit that is
635 generated dynamically with this
636 command and has dependencies on all
637 units active at the time. At a later
638 time the user may return to this state
639 by using the
640 <command>isolate</command> command on
641 the snapshot unit.</para></listitem>
642
643 <para>Snapshots are only useful for
644 saving and restoring which units are
645 running or are stopped, they do not
646 save/restore any other
647 state. Snapshots are dynamic and lost
648 on reboot.</para>
649 </varlistentry>
650 <varlistentry>
651 <term><command>delete [NAME...]</command></term>
652
653 <listitem><para>Remove a snapshot
654 previously created with
655 <command>snapshot</command>.</para></listitem>
656 </varlistentry>
657 <varlistentry>
658 <term><command>daemon-reload</command></term>
659
660 <listitem><para>Reload systemd manager
661 configuration. This will reload all
662 unit files and recreate the entire
663 dependency tree. While the daemon is
664 reloaded, all sockets systemd listens
665 on on behalf of user configuration will
666 stay accessible.</para> <para>This
667 command should not be confused with
668 the <command>load</command> or
669 <command>reload</command>
670 commands.</para></listitem>
671 </varlistentry>
672 <varlistentry>
673 <term><command>daemon-reexec</command></term>
674
675 <listitem><para>Reexecute the systemd
676 manager. This will serialize the
677 manager state, reexecute the process
678 and deserialize the state again. This
679 command is of little use except for
680 debugging and package
681 upgrades. Sometimes it might be
682 helpful as a heavy-weight
683 <command>daemon-reload</command>. While
684 the daemon is reexecuted all sockets
685 systemd listens on on behalf of user
686 configuration will stay
687 accessible.</para></listitem>
688 </varlistentry>
689 <varlistentry>
690 <term><command>daemon-exit</command></term>
691
692 <listitem><para>Ask the systemd
693 manager to quit. This is only
694 supported for session managers
695 (i.e. in conjunction with the
696 <option>--session</option> option) and
697 will fail otherwise.</para></listitem>
698 </varlistentry>
699 <varlistentry>
700 <term><command>show-environment</command></term>
701
702 <listitem><para>Dump the systemd
703 manager environment block. The
704 environment block will be dumped in
705 straight-forward form suitable for
706 sourcing into a shell script. This
707 environment block will be passed to
708 all processes the manager
709 spawns.</para></listitem>
710 </varlistentry>
711 <varlistentry>
712 <term><command>set-environment [NAME=VALUE...]</command></term>
713
714 <listitem><para>Set one or more
715 systemd manager environment variables,
716 as specified on the command
717 line.</para></listitem>
718 </varlistentry>
719 <varlistentry>
720 <term><command>unset-environment [NAME...]</command></term>
721
722 <listitem><para>Unset one or more
723 systemd manager environment
724 variables. If only a variable name is
725 specified it will be removed
726 regardless of its value. If a variable
727 and a value are specified the variable
728 is only removed if it has the
729 specified value.</para></listitem>
730 </varlistentry>
731
732 <varlistentry>
733 <term><command>halt</command></term>
734
735 <listitem><para>Shut down and halt the
736 system. This is mostly equivalent to
737 <command>start halt.target</command>
738 but also prints a wall message to all
739 users.</para></listitem>
740 </varlistentry>
741 <varlistentry>
742 <term><command>poweroff</command></term>
743
744 <listitem><para>Shut down and
745 power-off the system. This is mostly
746 equivalent to <command>start
747 poweroff.target</command> but also
748 prints a wall message to all
749 users.</para></listitem>
750 </varlistentry>
751 <varlistentry>
752 <term><command>reboot</command></term>
753
754 <listitem><para>Shut down and
755 reboot the system. This is mostly
756 equivalent to <command>start
757 reboot.target</command> but also
758 prints a wall message to all
759 users.</para></listitem>
760 </varlistentry>
761 <varlistentry>
762 <term><command>default</command></term>
763
764 <listitem><para>Enter default
765 mode. This is mostly equivalent to
766 <command>start
767 default.target</command>.</para></listitem>
768 </varlistentry>
769 <varlistentry>
770 <term><command>rescue</command></term>
771
772 <listitem><para>Enter rescue
773 mode. This is mostly equivalent to
774 <command>isolate
775 rescue.target</command> but also
776 prints a wall message to all
777 users.</para></listitem>
778 </varlistentry>
779 <varlistentry>
780 <term><command>emergency</command></term>
781
782 <listitem><para>Enter emergency
783 mode. This is mostly equivalent to
784 <command>isolate
785 emergency.target</command> but also
786 prints a wall message to all
787 users.</para></listitem>
788 </varlistentry>
789 </variablelist>
790
791 </refsect1>
792
793 <refsect1>
794 <title>Exit status</title>
795
796 <para>On success 0 is returned, a non-zero failure
797 code otherwise.</para>
798 </refsect1>
799
800 <refsect1>
801 <title>See Also</title>
802 <para>
803 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
804 <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
805 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
806 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
807 <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
808 </para>
809 </refsect1>
810
811 </refentry>