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">
6 This file is part of systemd.
8 Copyright 2010 Lennart Poettering
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.
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.
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/>.
24 <refentry id="systemctl">
27 <title>systemctl</title>
28 <productname>systemd</productname>
32 <contrib>Developer</contrib>
33 <firstname>Lennart</firstname>
34 <surname>Poettering</surname>
35 <email>lennart@poettering.net</email>
41 <refentrytitle>systemctl</refentrytitle>
42 <manvolnum>1</manvolnum>
46 <refname>systemctl</refname>
47 <refpurpose>Control the systemd system and service manager</refpurpose>
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>
60 <title>Description</title>
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>
69 <title>Options</title>
71 <para>The following options are understood:</para>
75 <term><option>-h</option></term>
76 <term><option>--help</option></term>
78 <listitem><para>Prints a short help
79 text and exits.</para></listitem>
83 <term><option>--version</option></term>
86 <para>Prints a short version string and exits.</para>
91 <term><option>-t</option></term>
92 <term><option>--type=</option></term>
95 <para>The argument should be a unit type name such as
96 <option>service</option> and <option>socket</option>, or a
97 unit load state such as <option>loaded</option> and
98 <option>masked</option>.
101 <para>If the argument is a unit type, when listing units,
102 limit display to certain unit types. If not specified units
103 of all types will be shown.</para>
105 <para>If the argument is a unit load state, when listing
106 units, limit display to certain unit types. If not specified
107 units of in all load states will be shown.</para>
109 <para>As a special case, if the argument is
110 <option>help</option>, a list of allowed values will be
111 printed and the program will exit.</para>
116 <term><option>-p</option></term>
117 <term><option>--property=</option></term>
120 <para>When showing unit/job/manager properties, limit
121 display to certain properties as specified as argument. If
122 not specified all set properties are shown. The argument
123 should be a property name, such as
124 <literal>MainPID</literal>. If specified more than once all
125 properties with the specified names are
131 <term><option>-a</option></term>
132 <term><option>--all</option></term>
135 <para>When listing units, show all units, regardless of
136 their state, including inactive units. When showing
137 unit/job/manager properties, show all properties regardless
138 whether they are set or not.</para>
143 <term><option>--failed</option></term>
146 <para>When listing units, show only failed units. Do not
147 confuse with <option>--fail</option>.</para>
152 <term><option>--full</option></term>
155 <para>Do not ellipsize unit names, cgroup members, and
156 truncate unit descriptions in the output of
157 <command>list-units</command> and
158 <command>list-jobs</command>.</para>
163 <term><option>--fail</option></term>
166 <para>If the requested operation conflicts with a pending
167 unfinished job, fail the command. If this is not specified
168 the requested operation will replace the pending job, if
169 necessary. Do not confuse with
170 <option>--failed</option>.</para>
175 <term><option>--ignore-dependencies</option></term>
178 <para>When enqueuing a new job ignore all its dependencies
179 and execute it immediately. If passed no required units of
180 the unit passed will be pulled in, and no ordering
181 dependencies will be honored. This is mostly a debugging and
182 rescue tool for the administrator and should not be used by
188 <term><option>-i</option></term>
189 <term><option>--ignore-inhibitors</option></term>
192 <para>When system shutdown or a sleep state is requested,
193 ignore inhibitor locks. Applications can establish inhibitor
194 locks to avoid that certain important operations (such as CD
195 burning or suchlike) are interrupted by system shutdown or a
196 sleep state. Any user may take these locks and privileged
197 users may override these locks. If any locks are taken,
198 shutdown and sleep state requests will normally fail
199 (regardless if privileged or not) and list of active locks
200 is printed. However if <option>--ignore-inhibitors</option>
201 is specified the locks are ignored and not printed, and the
202 operation attempted anyway, possibly requiring additional
208 <term><option>-q</option></term>
209 <term><option>--quiet</option></term>
212 <para>Suppress output to standard output in
213 <command>snapshot</command>,
214 <command>is-active</command>,
215 <command>is-failed</command>,
216 <command>enable</command> and
217 <command>disable</command>.</para>
222 <term><option>--no-block</option></term>
225 <para>Do not synchronously wait for the requested operation
226 to finish. If this is not specified the job will be
227 verified, enqueued and <command>systemctl</command> will
228 wait until it is completed. By passing this argument it is
229 only verified and enqueued.</para>
234 <term><option>--no-legend</option></term>
237 <para>Do not print a legend, i.e. the column headers and
238 the footer with hints.</para>
243 <term><option>--no-pager</option></term>
246 <para>Do not pipe output into a pager.</para>
251 <term><option>--system</option></term>
254 <para>Talk to the systemd system manager. (Default)</para>
259 <term><option>--user</option></term>
262 <para>Talk to the systemd manager of the calling
268 <term><option>--no-wall</option></term>
271 <para>Don't send wall message before halt, power-off,
277 <term><option>--global</option></term>
280 <para>When used with <command>enable</command> and
281 <command>disable</command>, operate on the global user
282 configuration directory, thus enabling or disabling a unit
283 file globally for all future logins of all users.</para>
288 <term><option>--no-reload</option></term>
291 <para>When used with <command>enable</command> and
292 <command>disable</command>, do not implicitly reload daemon
293 configuration after executing the changes.</para>
298 <term><option>--no-ask-password</option></term>
301 <para>When used with <command>start</command> and related
302 commands, disables asking for passwords. Background services
303 may require input of a password or passphrase string, for
304 example to unlock system hard disks or cryptographic
305 certificates. Unless this option is specified and the
306 command is invoked from a terminal
307 <command>systemctl</command> will query the user on the
308 terminal for the necessary secrets. Use this option to
309 switch this behavior off. In this case the password must be
310 supplied by some other means (for example graphical password
311 agents) or the service might fail. This also disables
312 querying the user for authentication for privileged
319 <term><option>--kill-who=</option></term>
322 <para>When used with <command>kill</command>, choose which
323 processes to kill. Must be one of <option>main</option>,
324 <option>control</option> or <option>all</option> to select
325 whether to kill only the main process of the unit, the
326 control process or all processes of the unit. If omitted
327 defaults to <option>all</option>.</para>
333 <term><option>-s</option></term>
334 <term><option>--signal=</option></term>
337 <para>When used with <command>kill</command>, choose which
338 signal to send to selected processes. Must be one of the
339 well known signal specifiers such as SIGTERM, SIGINT or
340 SIGSTOP. If omitted defaults to
341 <option>SIGTERM</option>.</para>
346 <term><option>-f</option></term>
347 <term><option>--force</option></term>
350 <para>When used with <command>enable</command>, overwrite
351 any existing conflicting symlinks.</para>
353 <para>When used with <command>halt</command>,
354 <command>poweroff</command>, <command>reboot</command> or
355 <command>kexec</command> execute the selected operation
356 without shutting down all units. However, all processes will
357 be killed forcibly and all file systems are unmounted or
358 remounted read-only. This is hence a drastic but relatively
359 safe option to request an immediate reboot. If
360 <option>--force</option> is specified twice for these
361 operations, they will be executed immediately without
362 terminating any processes or umounting any file
363 systems. Warning: specifying <option>--force</option> twice
364 with any of these operations might result in data
370 <term><option>--root=</option></term>
374 <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
375 (and related commands), use alternative root path when
376 looking for unit files.</para>
382 <term><option>--runtime</option></term>
386 <command>enable</command>/<command>disable</command>/<command>is-enabled</command>
387 (and related commands), make changes only temporarily, so
388 that they are dropped on the next reboot. This will have the
389 effect that changes are not made in subdirectories of
390 <filename>/etc</filename> but in <filename>/run</filename>,
391 with identical immediate effects, however, since the latter
392 is lost on reboot, the changes are lost too.</para>
397 <term><option>-H</option></term>
398 <term><option>--host</option></term>
401 <para>Execute operation remotely. Specify a hostname, or
402 username and hostname separated by @, to connect to. This
403 will use SSH to talk to the remote systemd
409 <term><option>-P</option></term>
410 <term><option>--privileged</option></term>
413 <para>Acquire privileges via PolicyKit before executing the
419 <term><option>-n</option></term>
420 <term><option>--lines=</option></term>
423 <para>When used with <command>status</command> controls the
424 number of journal lines to show, counting from the most
425 recent ones. Takes a positive integer argument. Defaults to
431 <term><option>-o</option></term>
432 <term><option>--output=</option></term>
435 <para>When used with <command>status</command> controls the
436 formatting of the journal entries that are shown. For the
437 available choices see
438 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
439 Defaults to <literal>short</literal>.</para>
447 <title>Commands</title>
449 <para>The following commands are understood:</para>
453 <term><command>list-units</command></term>
456 <para>List known units (subject to limitations specified
457 with <option>-t</option>).</para>
459 <para>This is the default command.</para>
463 <term><command>start <replaceable>NAME</replaceable>...</command></term>
466 <para>Start (activate) one or more units specified on the
471 <term><command>stop <replaceable>NAME</replaceable>...</command></term>
474 <para>Stop (deactivate) one or more units specified on the
479 <term><command>reload <replaceable>NAME</replaceable>...</command></term>
482 <para>Asks all units listed on the command line to reload
483 their configuration. Note that this will reload the
484 service-specific configuration, not the unit configuration
485 file of systemd. If you want systemd to reload the
486 configuration file of a unit use the
487 <command>daemon-reload</command> command. In other words:
488 for the example case of Apache, this will reload Apache's
489 <filename>httpd.conf</filename> in the web server, not the
490 <filename>apache.service</filename> systemd unit
493 <para>This command should not be confused with the
494 <command>daemon-reload</command> or <command>load</command>
500 <term><command>restart <replaceable>NAME</replaceable>...</command></term>
503 <para>Restart one or more units specified on the command
504 line. If the units are not running yet they will be
509 <term><command>try-restart <replaceable>NAME</replaceable>...</command></term>
512 <para>Restart one or more units specified on the command
513 line if the units are running. Do nothing if units are not
514 running. Note that for compatibility with Red Hat init
515 scripts <command>condrestart</command> is equivalent to this
520 <term><command>reload-or-restart <replaceable>NAME</replaceable>...</command></term>
523 <para>Reload one or more units if they support it. If not,
524 restart them instead. If the units are not running yet they
525 will be started.</para>
529 <term><command>reload-or-try-restart <replaceable>NAME</replaceable>...</command></term>
532 <para>Reload one or more units if they support it. If not,
533 restart them instead. Do nothing if the units are not
534 running. Note that for compatibility with SysV init scripts
535 <command>force-reload</command> is equivalent to this
540 <term><command>isolate <replaceable>NAME</replaceable></command></term>
543 <para>Start the unit specified on the command line and its
544 dependencies and stop all others.</para>
546 <para>This is similar to changing the runlevel in a
547 traditional init system. The <command>isolate</command>
548 command will immediately stop processes that are not enabled
549 in the new unit, possibly including the graphical
550 environment or terminal you are currently using.</para>
552 <para>Note that this is allowed only on units where
553 <option>AllowIsolate=</option> is enabled. See
554 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
559 <term><command>kill <replaceable>NAME</replaceable>...</command></term>
562 <para>Send a signal to one or more processes of the
563 unit. Use <option>--kill-who=</option> to select which
564 process to kill. Use <option>--kill-mode=</option> to select
565 the kill mode and <option>--signal=</option> to select the
566 signal to send.</para>
570 <term><command>is-active <replaceable>NAME</replaceable>...</command></term>
573 <para>Check whether any of the specified units are active
574 (i.e. running). Returns an exit code 0 if at least one is
575 active, non-zero otherwise. Unless <option>--quiet</option>
576 is specified this will also print the current unit state to
581 <term><command>is-failed <replaceable>NAME</replaceable>...</command></term>
584 <para>Check whether any of the specified units are failed.
585 Returns an exit code 0 if at least one is failed, non-zero
586 otherwise. Unless <option>--quiet</option> is specified this
587 will also print the current unit state to
592 <term><command>status [<replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...]</command></term>
595 <para>Show terse runtime status information about one or
596 more units, followed by most recent log data from the
597 journal. If no units are specified, show all units (subject
598 to limitations specified with <option>-t</option>). If a PID
599 is passed show information about the unit the process
602 <para>This function is intended to generate human-readable
603 output. If you are looking for computer-parsable output, use
604 <command>show</command> instead.</para>
608 <term><command>show [<replaceable>NAME</replaceable>...|<replaceable>JOB</replaceable>...]</command></term>
611 <para>Show properties of one or more units, jobs, or the
612 manager itself. If no argument is specified properties of
613 the manager will be shown. If a unit name is specified
614 properties of the unit is shown, and if a job id is
615 specified properties of the job is shown. By default, empty
616 properties are suppressed. Use <option>--all</option> to
617 show those too. To select specific properties to show use
618 <option>--property=</option>. This command is intended to be
619 used whenever computer-parsable output is required. Use
620 <command>status</command> if you are looking for formatted
621 human-readable output.</para>
625 <term><command>help <replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...</command></term>
628 <para>Show manual pages for one or more units, if
629 available. If a PID is passed the manual pages for the unit
630 the process of the PID belongs to is
635 <term><command>reset-failed [<replaceable>NAME</replaceable>...]</command></term>
638 <para>Reset the <literal>failed</literal> state of the
639 specified units, or if no unit name is passed of all
640 units. When a unit fails in some way (i.e. process exiting
641 with non-zero error code, terminating abnormally or timing
642 out) it will automatically enter the
643 <literal>failed</literal> state and its exit code and status
644 is recorded for introspection by the administrator until the
645 service is restarted or reset with this command.</para>
650 <term><command>list-unit-files</command></term>
653 <para>List installed unit files.</para>
658 <term><command>enable <replaceable>NAME</replaceable>...</command></term>
661 <para>Enable one or more unit files or unit file instances,
662 as specified on the command line. This will create a number
663 of symlinks as encoded in the <literal>[Install]</literal>
664 sections of the unit files. After the symlinks have been
665 created the systemd configuration is reloaded (in a way that
666 is equivalent to <command>daemon-reload</command>) to ensure
667 the changes are taken into account immediately. Note that
668 this does not have the effect that any of the units enabled
669 are also started at the same time. If this is desired a
670 separate <command>start</command> command must be invoked
671 for the unit. Also note that in case of instance enablement,
672 symlinks named same as instances are created in install
673 location, however they all point to the same template unit
676 <para>This command will print the actions executed. This
677 output may be suppressed by passing <option>--quiet</option>.
680 <para>Note that this operation creates only the suggested
681 symlinks for the units. While this command is the
682 recommended way to manipulate the unit configuration
683 directory, the administrator is free to make additional
684 changes manually, by placing or removing symlinks in the
685 directory. This is particularly useful to create
686 configurations that deviate from the suggested default
687 installation. In this case the administrator must make sure
688 to invoke <command>daemon-reload</command> manually as
689 necessary, to ensure his changes are taken into account.
692 <para>Enabling units should not be confused with starting
693 (activating) units, as done by the <command>start</command>
694 command. Enabling and starting units is orthogonal: units
695 may be enabled without being started and started without
696 being enabled. Enabling simply hooks the unit into various
697 suggested places (for example, so that the unit is
698 automatically started on boot or when a particular kind of
699 hardware is plugged in). Starting actually spawns the daemon
700 process (in case of service units), or binds the socket (in
701 case of socket units), and so on.</para>
703 <para>Depending on whether <option>--system</option>,
704 <option>--user</option> or <option>--global</option> is
705 specified this enables the unit for the system, for the
706 calling user only or for all future logins of all
707 users. Note that in the last case no systemd daemon
708 configuration is reloaded.</para>
713 <term><command>disable <replaceable>NAME</replaceable>...</command></term>
716 <para>Disables one or more units. This removes all symlinks
717 to the specified unit files from the unit configuration
718 directory, and hence undoes the changes made by
719 <command>enable</command>. Note however that this removes
720 all symlinks to the unit files (i.e. including manual
721 additions), not just those actually created by
722 <command>enable</command>. This call implicitly reloads the
723 systemd daemon configuration after completing the disabling
724 of the units. Note that this command does not implicitly
725 stop the units that are being disabled. If this is desired
726 an additional <command>stop</command> command should be
727 executed afterwards.</para>
729 <para>This command will print the actions executed. This
730 output may be suppressed by passing <option>--quiet</option>.
733 <para>This command honors <option>--system</option>,
734 <option>--user</option>, <option>--global</option> in a
735 similar way as <command>enable</command>.</para>
740 <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
743 <para>Checks whether any of the specified unit files are
744 enabled (as with <command>enable</command>). Returns an exit
745 code of 0 if at least one is enabled, non-zero
746 otherwise. Prints the current enable status. To suppress
747 this output use <option>--quiet</option>.</para>
752 <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
755 <para>Reenable one or more unit files, as specified on the
756 command line. This is a combination of
757 <command>disable</command> and <command>enable</command> and
758 is useful to reset the symlinks a unit is enabled with to
759 the defaults configured in the <literal>[Install]</literal>
760 section of the unit file.</para>
765 <term><command>preset <replaceable>NAME</replaceable>...</command></term>
768 <para>Reset one or more unit files, as specified on the
769 command line, to the defaults configured in the preset
770 policy files. This has the same effect as
771 <command>disable</command> or <command>enable</command>,
772 depending how the unit is listed in the preset files. For
773 more information on preset policy format see
774 <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
775 For more information on the concept of presets please
777 <ulink url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
783 <term><command>mask <replaceable>NAME</replaceable>...</command></term>
786 <para>Mask one or more unit files, as specified on the
787 command line. This will link these units to
788 <filename>/dev/null</filename>, making it impossible to
789 start them. This is a stronger version of
790 <command>disable</command>, since it prohibits all kinds of
791 activation of the unit, including manual activation. Use
792 this option with care.</para>
797 <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
800 <para>Unmask one or more unit files, as specified on the
801 command line. This will undo the effect of
802 <command>mask</command>.</para>
807 <term><command>link <replaceable>FILENAME</replaceable>...</command></term>
810 <para>Link a unit file that is not in the unit file search
811 paths into the unit file search path. This requires an
812 absolute path to a unit file. The effect of this can be
813 undone with <command>disable</command>. The effect of this
814 command is that a unit file is available for
815 <command>start</command> and other commands although it
816 isn't installed directly in the unit search path.</para>
821 <term><command>load <replaceable>NAME</replaceable>...</command></term>
824 <para>Load one or more units specified on the command
825 line. This will simply load their configuration from disk,
826 but not start them. To start them you need to use the
827 <command>start</command> command which will implicitly load
828 a unit that has not been loaded yet. Note that systemd
829 garbage collects loaded units that are not active or
830 referenced by an active unit. This means that units loaded
831 this way will usually not stay loaded for long. Also note
832 that this command cannot be used to reload unit
833 configuration. Use the <command>daemon-reload</command>
834 command for that. All in all, this command is of little use
835 except for debugging.</para>
837 <para>This command should not be confused with the
838 <command>daemon-reload</command> or
839 <command>reload</command>.</para>
843 <term><command>list-jobs</command></term>
846 <para>List jobs that are in progress.</para>
850 <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
853 <para>Cancel one or more jobs specified on the command line
854 by their numeric job IDs. If no job id is specified, cancel
855 all pending jobs.</para>
859 <term><command>dump</command></term>
862 <para>Dump server status. This will output a (usually very
863 long) human readable manager status dump. Its format is
864 subject to change without notice and should not be parsed by
869 <term><command>list-dependencies <replaceable>NAME</replaceable></command></term>
872 <para>Shows required and wanted units of the specified
873 unit. If no unit is specified
874 <filename>default.target</filename> is implied. Target units
875 are recursively expanded. When <option>--all</option> is
876 passed all other units are recursively expanded as
881 <term><command>snapshot [<replaceable>NAME</replaceable>]</command></term>
884 <para>Create a snapshot. If a snapshot name is specified,
885 the new snapshot will be named after it. If none is
886 specified an automatic snapshot name is generated. In either
887 case, the snapshot name used is printed to STDOUT, unless
888 <option>--quiet</option> is specified.</para>
890 <para>A snapshot refers to a saved state of the systemd
891 manager. It is implemented itself as a unit that is
892 generated dynamically with this command and has dependencies
893 on all units active at the time. At a later time the user
894 may return to this state by using the
895 <command>isolate</command> command on the snapshot unit.
898 <para>Snapshots are only useful for saving and restoring
899 which units are running or are stopped, they do not
900 save/restore any other state. Snapshots are dynamic and lost
905 <term><command>delete <replaceable>NAME</replaceable>...</command></term>
908 <para>Remove a snapshot previously created with
909 <command>snapshot</command>.</para>
913 <term><command>daemon-reload</command></term>
916 <para>Reload systemd manager configuration. This will reload
917 all unit files and recreate the entire dependency
918 tree. While the daemon is reloaded, all sockets systemd
919 listens on on behalf of user configuration will stay
920 accessible.</para> <para>This command should not be confused
921 with the <command>load</command> or
922 <command>reload</command> commands.</para>
926 <term><command>daemon-reexec</command></term>
929 <para>Reexecute the systemd manager. This will serialize the
930 manager state, reexecute the process and deserialize the
931 state again. This command is of little use except for
932 debugging and package upgrades. Sometimes it might be
933 helpful as a heavy-weight <command>daemon-reload</command>.
934 While the daemon is reexecuted all sockets systemd listens
935 on on behalf of user configuration will stay accessible.
940 <term><command>show-environment</command></term>
943 <para>Dump the systemd manager environment block. The
944 environment block will be dumped in straight-forward form
945 suitable for sourcing into a shell script. This environment
946 block will be passed to all processes the manager
951 <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
954 <para>Set one or more systemd manager environment variables,
955 as specified on the command line.</para>
959 <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
962 <para>Unset one or more systemd manager environment
963 variables. If only a variable name is specified it will be
964 removed regardless of its value. If a variable and a value
965 are specified the variable is only removed if it has the
966 specified value.</para>
970 <term><command>default</command></term>
973 <para>Enter default mode. This is mostly equivalent to
974 <command>start default.target</command>.</para>
978 <term><command>rescue</command></term>
981 <para>Enter rescue mode. This is mostly equivalent to
982 <command>isolate rescue.target</command> but also prints a
983 wall message to all users.</para>
987 <term><command>emergency</command></term>
990 <para>Enter emergency mode. This is mostly equivalent to
991 <command>isolate emergency.target</command> but also prints
992 a wall message to all users.</para>
996 <term><command>halt</command></term>
999 <para>Shut down and halt the system. This is mostly
1000 equivalent to <command>start halt.target</command> but also
1001 prints a wall message to all users. If combined with
1002 <option>--force</option> shutdown of all running services is
1003 skipped, however all processes are killed and all file
1004 systems are unmounted or mounted read-only, immediately
1005 followed by the system halt. If <option>--force</option> is
1006 specified twice the operation is immediately executed
1007 without terminating any processes or unmounting any file
1008 systems. This may result in data loss.</para>
1012 <term><command>poweroff</command></term>
1015 <para>Shut down and power-off the system. This is mostly
1016 equivalent to <command>start poweroff.target</command> but
1017 also prints a wall message to all users. If combined with
1018 <option>--force</option> shutdown of all running services is
1019 skipped, however all processes are killed and all file
1020 systems are unmounted or mounted read-only, immediately
1021 followed by the powering off. If <option>--force</option> is
1022 specified twice the operation is immediately executed
1023 without terminating any processes or unmounting any file
1024 systems. This may result in data loss.</para>
1028 <term><command>reboot</command></term>
1031 <para>Shut down and reboot the system. This is mostly
1032 equivalent to <command>start reboot.target</command> but
1033 also prints a wall message to all users. If combined with
1034 <option>--force</option> shutdown of all running services is
1035 skipped, however all processes are killed and all file
1036 systems are unmounted or mounted read-only, immediately
1037 followed by the reboot. If <option>--force</option> is
1038 specified twice the operation is immediately executed
1039 without terminating any processes or unmounting any file
1040 systems. This may result in data loss.</para>
1044 <term><command>kexec</command></term>
1047 <para>Shut down and reboot the system via kexec. This is
1048 mostly equivalent to <command>start kexec.target</command>
1049 but also prints a wall message to all users. If combined
1050 with <option>--force</option> shutdown of all running
1051 services is skipped, however all processes are killed and
1052 all file systems are unmounted or mounted read-only,
1053 immediately followed by the reboot.</para>
1057 <term><command>exit</command></term>
1060 <para>Ask the systemd manager to quit. This is only
1061 supported for user service managers (i.e. in conjunction
1062 with the <option>--user</option> option) and will fail
1068 <term><command>suspend</command></term>
1071 <para>Suspend the system. This will trigger activation of
1072 the special <filename>suspend.target</filename> target.
1077 <term><command>hibernate</command></term>
1080 <para>Hibernate the system. This will trigger activation of
1081 the special <filename>hibernate.target</filename> target.
1086 <term><command>hybrid-sleep</command></term>
1089 <para>Hibernate and suspend the system. This will trigger
1090 activation of the special
1091 <filename>hybrid-sleep.target</filename> target.</para>
1095 <term><command>switch-root <replaceable>ROOT</replaceable> [<replaceable>INIT</replaceable>]</command></term>
1098 <para>Switches to a different root directory and executes a
1099 new system manager process below it. This is intended for
1100 usage in initial RAM disks ("initrd"), and will transition
1101 from the initrd's system manager process (a.k.a "init"
1102 process) to the main system manager process. Takes two
1103 arguments: the directory to make the new root directory, and
1104 the path to the new system manager binary below it to
1105 execute as PID 1. If the latter is omitted or the empty
1106 string, a systemd binary will automatically be searched for
1107 and used as init. If the system manager path is omitted or
1108 equal to the empty string the state of the initrd's system
1109 manager process is passed to the main system manager, which
1110 allows later introspection of the state of the services
1111 involved in the initrd boot.</para>
1119 <title>Exit status</title>
1121 <para>On success 0 is returned, a non-zero failure
1122 code otherwise.</para>
1126 <title>Environment</title>
1128 <variablelist class='environment-variables'>
1130 <term><varname>$SYSTEMD_PAGER</varname></term>
1133 <para>Pager to use when <option>--no-pager</option> is not
1134 given; overrides <varname>$PAGER</varname>. Setting this to
1135 an empty string or the value <literal>cat</literal> is
1136 equivalent to passing
1137 <option>--no-pager</option>.</para>
1144 <title>See Also</title>
1146 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1147 <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1148 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1149 <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1150 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1151 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1152 <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1153 <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>