diff options
Diffstat (limited to 'man')
-rw-r--r-- | man/org.freedesktop.login1.xml | 31 | ||||
-rw-r--r-- | man/org.freedesktop.systemd1.xml | 21 | ||||
-rw-r--r-- | man/rules/meson.build | 1 | ||||
-rw-r--r-- | man/systemctl.xml | 18 | ||||
-rw-r--r-- | man/systemd-poweroff.service.xml | 5 | ||||
-rw-r--r-- | man/systemd-soft-reboot.service.xml | 158 | ||||
-rw-r--r-- | man/systemd.mount.xml | 8 | ||||
-rw-r--r-- | man/systemd.special.xml | 56 | ||||
-rw-r--r-- | man/systemd.unit.xml | 49 | ||||
-rw-r--r-- | man/systemd.xml | 15 |
10 files changed, 301 insertions, 61 deletions
diff --git a/man/org.freedesktop.login1.xml b/man/org.freedesktop.login1.xml index 034fd1078f..867662e057 100644 --- a/man/org.freedesktop.login1.xml +++ b/man/org.freedesktop.login1.xml @@ -576,16 +576,15 @@ node /org/freedesktop/login1 { <para><function>PowerOff()</function>, <function>Reboot()</function>, <function>Halt()</function>, <function>Suspend()</function>, and <function>Hibernate()</function> result in the system being powered - off, rebooted, halted (shut down without turning off power), suspended (the system state is - saved to RAM and the CPU is turned off), or hibernated (the system state is saved to disk and - the machine is powered down). <function>HybridSleep()</function> results in the system entering a - hybrid-sleep mode, i.e. the system is both hibernated and suspended. - <function>SuspendThenHibernate()</function> results in the system being suspended, then later woken - using an RTC timer and hibernated. The only argument is the polkit interactivity boolean - <varname>interactive</varname> (see below). The main purpose of these calls is that they enforce - polkit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged - users. They also enforce inhibition locks for non-privileged users. UIs should expose these calls - as the primary mechanism to poweroff/reboot/suspend/hibernate the machine. Methods + off, rebooted, halted (shut down without turning off power), suspended (the system state is saved to + RAM and the CPU is turned off), or hibernated (the system state is saved to disk and the machine is + powered down). <function>HybridSleep()</function> results in the system entering a hybrid-sleep mode, + i.e. the system is both hibernated and suspended. <function>SuspendThenHibernate()</function> results + in the system being suspended, then later woken using an RTC timer and hibernated. The only argument is + the polkit interactivity boolean <varname>interactive</varname> (see below). The main purpose of these + calls is that they enforce polkit policy and hence allow powering off/rebooting/suspending/hibernating + even by unprivileged users. They also enforce inhibition locks for non-privileged users. UIs should + expose these calls as the primary mechanism to poweroff/reboot/suspend/hibernate the machine. Methods <function>PowerOffWithFlags()</function>, <function>RebootWithFlags()</function>, <function>HaltWithFlags()</function>, <function>SuspendWithFlags()</function>, <function>HibernateWithFlags()</function>, <function>HybridSleepWithFlags()</function> and @@ -594,12 +593,14 @@ node /org/freedesktop/login1 { <programlisting> #define SD_LOGIND_ROOT_CHECK_INHIBITORS (UINT64_C(1) << 0) #define SD_LOGIND_KEXEC_REBOOT (UINT64_C(1) << 1) +#define SD_LOGIND_SOFT_REBOOT (UINT64_C(1) << 2) </programlisting> - <para> When the <varname>flags</varname> is 0 then these methods behave just like the versions - without flags. When <constant>SD_LOGIND_ROOT_CHECK_INHIBITORS</constant> (0x01) is set, active - inhibitors are honoured for privileged users too. When <constant>SD_LOGIND_KEXEC_REBOOT</constant> - (0x02) is set, then <function>RebootWithFlags()</function> perform kexec reboot if kexec - kernel is loaded.</para> + <para>When the <varname>flags</varname> is 0 then these methods behave just like the versions without + flags. When <constant>SD_LOGIND_ROOT_CHECK_INHIBITORS</constant> (0x01) is set, active inhibitors are + honoured for privileged users too. When <constant>SD_LOGIND_KEXEC_REBOOT</constant> (0x02) is set, then + <function>RebootWithFlags()</function> performs a kexec reboot if kexec kernel is loaded. When + <constant>SD_LOGIND_SOFT_REBOOT</constant> (0x04) is set, then <function>RebootWithFlags()</function> + performs a userspace reboot only.</para> <para><function>SetRebootParameter()</function> sets a parameter for a subsequent reboot operation. See the description of <command>reboot</command> in diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml index 0835481f37..a08108dd88 100644 --- a/man/org.freedesktop.systemd1.xml +++ b/man/org.freedesktop.systemd1.xml @@ -183,6 +183,8 @@ node /org/freedesktop/systemd1 { @org.freedesktop.systemd1.Privileged("true") Reboot(); @org.freedesktop.systemd1.Privileged("true") + SoftReboot(in s new_root); + @org.freedesktop.systemd1.Privileged("true") PowerOff(); @org.freedesktop.systemd1.Privileged("true") Halt(); @@ -912,6 +914,8 @@ node /org/freedesktop/systemd1 { <variablelist class="dbus-method" generated="True" extra-ref="Reboot()"/> + <variablelist class="dbus-method" generated="True" extra-ref="SoftReboot()"/> + <variablelist class="dbus-method" generated="True" extra-ref="PowerOff()"/> <variablelist class="dbus-method" generated="True" extra-ref="Halt()"/> @@ -1415,15 +1419,18 @@ node /org/freedesktop/systemd1 { <para><function>Exit()</function> may be invoked to ask the manager to exit. This is not available for the system manager and is useful only for user session managers.</para> - <para><function>Reboot()</function>, <function>PowerOff()</function>, <function>Halt()</function>, or - <function>KExec()</function> may be used to ask for immediate reboot, powering down, halt or kexec - based reboot of the system. Note that this does not shut down any services and immediately transitions - into the reboot process. These functions are normally only called as the last step of shutdown and should - not be called directly. To shut down the machine, it is generally a better idea to invoke - <function>Reboot()</function> or <function>PowerOff()</function> on the + <para><function>Reboot()</function>, <function>PowerOff()</function>, <function>Halt()</function>, + <function>KExec()</function> and <function>SoftReboot()</function> may be used to ask for immediate + reboot, powering down, halt, kexec based reboot, or soft reboot of the system. Note that this does not + shut down any services and immediately transitions into the later shutdown operation. These functions + are normally only called as the last step of shutdown and should not be called directly. To shut down + the machine, it is generally a better idea to invoke <function>Reboot()</function>, + <function>RebootWithFlags()</function> or <function>PowerOff()</function> on the <filename>systemd-logind</filename> manager object; see <citerefentry><refentrytitle>org.freedesktop.login1</refentrytitle><manvolnum>5</manvolnum></citerefentry> - for more information.</para> + for more information. <function>SoftReboot()</function> accepts an argument indicating the path for the + root file system to activate for the next boot cycle. If an empty string is specified the + <filename>/run/nextroot/</filename> path is used if it exists.</para> <para><function>SwitchRoot()</function> may be used to transition to a new root directory. This is intended to be used in the initrd, and also to transition from the host system into a shutdown initrd. diff --git a/man/rules/meson.build b/man/rules/meson.build index 4658ef99f0..166d8a5e22 100644 --- a/man/rules/meson.build +++ b/man/rules/meson.build @@ -1036,6 +1036,7 @@ manpages = [ ['systemd-sleep.conf', '5', ['sleep.conf.d'], ''], ['systemd-socket-activate', '1', [], ''], ['systemd-socket-proxyd', '8', [], ''], + ['systemd-soft-reboot.service', '8', [], ''], ['systemd-stdio-bridge', '1', [], ''], ['systemd-stub', '7', diff --git a/man/systemctl.xml b/man/systemctl.xml index e54dd22aae..29e5fc65c2 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1560,6 +1560,24 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err </varlistentry> <varlistentry> + <term><command>soft-reboot</command></term> + + <listitem> + <para>Shut down and reboot userspace. This is equivalent to <command>systemctl start + soft-reboot.target --job-mode=replace-irreversibly --no-block</command>. This command is + asynchronous; it will return after the reboot operation is enqueued, without waiting for it to + complete.</para> + + <para>This command honors <option>--force</option> and <option>--when=</option> in a similar way + as <command>halt</command>.</para> + + <para>This operation only reboots userspace, leaving the kernel running. See + <citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + for details.</para> + </listitem> + </varlistentry> + + <varlistentry> <term><command>exit</command> <optional><replaceable>EXIT_CODE</replaceable></optional></term> <listitem> diff --git a/man/systemd-poweroff.service.xml b/man/systemd-poweroff.service.xml index 98c20471da..b430170bec 100644 --- a/man/systemd-poweroff.service.xml +++ b/man/systemd-poweroff.service.xml @@ -68,6 +68,10 @@ <para>Note that <filename>systemd-poweroff.service</filename> (and the related units) should never be executed directly. Instead, trigger system shutdown with a command such as <literal>systemctl poweroff</literal>.</para> + + <para>Another form of shutdown is provided by the + <citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + functionality. It reboots only the OS userspace, leaving the kernel, firmware, and hardware as it is.</para> </refsect1> <refsect1> @@ -78,6 +82,7 @@ <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> </para> </refsect1> diff --git a/man/systemd-soft-reboot.service.xml b/man/systemd-soft-reboot.service.xml new file mode 100644 index 0000000000..0e95cba3be --- /dev/null +++ b/man/systemd-soft-reboot.service.xml @@ -0,0 +1,158 @@ +<?xml version='1.0'?> <!--*-nxml-*--> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> +<!-- SPDX-License-Identifier: LGPL-2.1-or-later --> + +<refentry id="systemd-soft-reboot.service"> + + <refentryinfo> + <title>systemd-soft-reboot.service</title> + <productname>systemd</productname> + </refentryinfo> + + <refmeta> + <refentrytitle>systemd-soft-reboot.service</refentrytitle> + <manvolnum>8</manvolnum> + </refmeta> + + <refnamediv> + <refname>systemd-soft-reboot.service</refname> + <refpurpose>Userspace reboot operation</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <para><filename>systemd-soft-reboot.service</filename></para> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para><filename>systemd-soft-reboot.service</filename> is a system service that is pulled in by + <filename>soft-reboot.target</filename> and is responsible for performing a userspace-only reboot + operation. When invoked, it will send the <constant>SIGTERM</constant> signal to any processes left + running (but does not follow up with <constant>SIGKILL</constant>, and does not wait for the processes to + exit). If the <filename>/run/nextroot/</filename> directory exists (which may be a regular directory, a + directory mount point or a symlink to either) then it will switch the file system root to it. It then + reexecutes the service manager off the (possibly now new) root file system, which will enqueue a new boot + transaction as in a normal reboot.</para> + + <para>Such a userspace-only reboot operation permits updating or resetting the entirety of userspace with + minimal downtime, as the reboot operation does <emphasis>not</emphasis> transition through:</para> + + <itemizedlist> + <listitem><para>The second phase of regular shutdown, as implemented by + <citerefentry><refentrytitle>systemd-shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></listitem> + + <listitem><para>The third phase of regular shutdown, i.e. the return to the initrd + context</para></listitem> + + <listitem><para>The hardware reboot operation</para></listitem> + + <listitem><para>The firmware initialization</para></listitem> + + <listitem><para>The boot loader initialization</para></listitem> + + <listitem><para>The kernel initialization</para></listitem> + + <listitem><para>The initrd initialization</para></listitem> + </itemizedlist> + + <para>However this form of reboot comes with drawbacks as well:</para> + + <itemizedlist> + <listitem><para>The OS update remains incomplete, as the kernel is not reset and continues + running.</para></listitem> + + <listitem><para>Kernel settings (such as <filename>/proc/sys/</filename> settings, a.k.a. "sysctl", or + <filename>/sys/</filename> settings) are not reset.</para></listitem> + </itemizedlist> + + <para>These limitations may be addressed by various means, which are outside of the scope of this + documentation, such as kernel live-patching and sufficiently comprehensive + <filename>/etc/sysctl.d/</filename> files.</para> + </refsect1> + + <refsect1> + <title>Resource Pass-Through</title> + + <para>Various runtime OS resources can passed from a system runtime to the next, through the userspace + reboot operation. Specificially:</para> + + <itemizedlist> + <listitem><para>File descriptors placed in the file descriptor store of services that remain active + until the very end are passed to the next boot, where they are placed in the file descriptor store of + the same unit. For this to work, units must declare <varname>DefaultDependencies=no</varname> (and + avoid a manual <varname>Conflicts=shutdown.target</varname> or similar) to ensure they are not + terminated as usual during the system shutdown operation. Alternatively, use + <varname>FileDescriptorStorePreserve=</varname> to allow the file descriptor store to remain pinned + even when the unit is down. See + <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry> for + details about the file descriptor store.</para></listitem> + + <listitem><para>Similar to this, file descriptors associated with <filename>.socket</filename> units + remain open (and connectible) if the units are not stopped during the transition. (Achieved by + <varname>DefaultDependencies=no</varname>.)</para></listitem> + + <listitem><para>The <filename>/run/</filename> file system remains mounted and populated and may be + used to pass state information between such userspace reboot cycles.</para></listitem> + + <listitem><para>Service processes may continue to run over the transition, if they are placed in + services that remain active until the very end of shutdown (which again is achieved via + <varname>DefaultDependencies=no</varname>). They must also be set up to avoid being killed by the + aforementioned <constant>SIGTERM</constant> spree (as per <ulink + url="https://systemd.io/ROOT_STORAGE_DAEMONS">systemd and Storage Daemons for the Root File + System</ulink>).</para></listitem> + + <listitem><para>File system mounts may remain mounted during the transition, and complex storage + attached, if configured to remain until the very end of the shutdown process. (Also achieved via + <varname>DefaultDependencies=no</varname>, and by avoiding + <varname>Conflicts=umount.target</varname>)</para></listitem> + </itemizedlist> + + <para>Even though passing resources from one soft reboot cycle to the next is possible this way, we + strongly suggest to use this functionality sparingly only, as it creates a more fragile system as + resources from different versions of the OS and applications might be mixed with unforeseen + consequences. In particular it's recommended to <emphasis>avoid</emphasis> allowing processes to survive + the soft reboot operation, as this means code updates will necessarily be incomplete, and processes + typically pin various other resources (such as the file system they are backed by), thus increasing + memory usage (as two versions of the OS/application/file system might be kept in memory). Leaving + processes running during a soft-reboot operation requires disconnecting the service comprehensively from + the rest of the OS, i.e. minimizing IPC and reducing sharing of resources with the rest of the OS. A + possible mechanism to achieve this is the concept of <ulink + url="https://systemd.io/PORTABLE_SERVICES">Portable Services</ulink>.</para> + + <para>If units shall be left running until the very end of shutdown during a soft reboot operation, but + shall be terminated regularly during other forms of shutdown, it's recommended to set + <varname>DefaultDependencies=no</varname> and then place + <varname>Conflicts=</varname>/<varname>Before=</varname> onto <filename>reboot.target</filename>, + <filename>kexec.target</filename>, <filename>poweroff.target</filename> and + <filename>halt.target</filename> (but <emphasis>not</emphasis> onto + <filename>soft-reboot.target</filename>).</para> + </refsect1> + + <refsect1> + <title>Notes</title> + + <para>Note that because + <citerefentry><refentrytitle>systemd-shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> is + not executed, the executables in <filename>/usr/lib/systemd/system-shutdown/</filename> are not executed + either.</para> + + <para>Note that <filename>systemd-soft-reboot.service</filename> (and related units) should never be + executed directly. Instead, trigger system shutdown with a command such as <literal>systemctl + soft-reboot</literal>.</para> + </refsect1> + + <refsect1> + <title>See Also</title> + <para> + <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd-poweroff.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> + </para> + </refsect1> + +</refentry> diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml index 550f006601..0d14d702a8 100644 --- a/man/systemd.mount.xml +++ b/man/systemd.mount.xml @@ -437,8 +437,12 @@ <listitem><para>An additional filesystem to be mounted in the initrd. See <filename>initrd-fs.target</filename> description in - <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>. - </para></listitem> + <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>. This + is both an indicator to the initrd to mount this partition early and an indicator to the host to + leave the partition mounted until final shutdown. Or in other words, if this flag is set it is + assumed the mount shall be active during the entire regular runtime of the system, i.e. established + before the initrd transitions into the host all the way until the host transitions to the final + shutdown phase.</para></listitem> </varlistentry> </variablelist> diff --git a/man/systemd.special.xml b/man/systemd.special.xml index 1620895511..c90e7156ed 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -81,6 +81,7 @@ <filename>slices.target</filename>, <filename>smartcard.target</filename>, <filename>sockets.target</filename>, + <filename>soft-reboot.target</filename>, <filename>sound.target</filename>, <filename>suspend.target</filename>, <filename>swap.target</filename>, @@ -442,15 +443,18 @@ <varlistentry> <term><filename>kexec.target</filename></term> <listitem> - <para>A special target unit for shutting down and rebooting - the system via kexec.</para> + <para>A special target unit for shutting down and rebooting the system via kexec.</para> - <para>Applications wanting to reboot the system should not start this unit - directly, but should instead execute <command>systemctl kexec</command> - (possibly with the <option>--no-block</option> option) or call - <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s - <command>org.freedesktop.systemd1.Manager.KExec</command> D-Bus method + <para>Applications wanting to reboot the system should not start this unit directly, but should + instead execute <command>systemctl kexec</command> (possibly with the + <option>--no-block</option> option) or call + <citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s + <function>org.freedesktop.login1.Manager.RebootWithFlags()</function> D-Bus method directly.</para> + + <para>See + <citerefentry><refentrytitle>systemd-kexec.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + for further details of the operation this target pulls in.</para> </listitem> </varlistentry> <varlistentry> @@ -559,18 +563,20 @@ <varlistentry> <term><filename>reboot.target</filename></term> <listitem> - <para>A special target unit for shutting down and rebooting - the system.</para> + <para>A special target unit for shutting down and rebooting the system.</para> - <para>Applications wanting to reboot the system should not start this unit - directly, but should instead execute <command>systemctl reboot</command> - (possibly with the <option>--no-block</option> option) or call + <para>Applications wanting to reboot the system should not start this unit directly, but should + instead execute <command>systemctl reboot</command> (possibly with the + <option>--no-block</option> option) or call <citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s - <command>org.freedesktop.login1.Manager.Reboot</command> D-Bus method - directly.</para> + <function>org.freedesktop.login1.Manager.Reboot()</function> D-Bus method directly.</para> - <para><filename>runlevel6.target</filename> is an alias for - this target unit, for compatibility with SysV.</para> + <para>See + <citerefentry><refentrytitle>systemd-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + for further details of the operation this target pulls in.</para> + + <para><filename>runlevel6.target</filename> is an alias for this target unit, for compatibility + with SysV.</para> </listitem> </varlistentry> <varlistentry> @@ -704,6 +710,24 @@ </listitem> </varlistentry> <varlistentry> + <term><filename>soft-reboot.target</filename></term> + <listitem> + <para>A special target unit for shutting down and rebooting the userspace of the system (leaving + the kernel running).</para> + + <para>Applications wanting to reboot the system should not start this unit directly, but should + instead execute <command>systemctl soft-reboot</command> (possibly with the + <option>--no-block</option> option) or call + <citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s + <function>org.freedesktop.login1.Manager.RebootWithFlags()</function> D-Bus method + directly.</para> + + <para>See + <citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + for further details of the operation this target pulls in.</para> + </listitem> + </varlistentry> + <varlistentry> <term><filename>suspend.target</filename></term> <listitem> <para>A special target unit for suspending the system. This diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index fcd1f914a8..77c3cd24f8 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -999,27 +999,34 @@ <term><varname>FailureAction=</varname></term> <term><varname>SuccessAction=</varname></term> - <listitem><para>Configure the action to take when the unit stops and enters a failed state or inactive state. - Takes one of <option>none</option>, <option>reboot</option>, <option>reboot-force</option>, - <option>reboot-immediate</option>, <option>poweroff</option>, <option>poweroff-force</option>, - <option>poweroff-immediate</option>, <option>exit</option>, and <option>exit-force</option>. In system mode, - all options are allowed. In user mode, only <option>none</option>, <option>exit</option>, and - <option>exit-force</option> are allowed. Both options default to <option>none</option>.</para> - - <para>If <option>none</option> is set, no action will be triggered. <option>reboot</option> causes a reboot - following the normal shutdown procedure (i.e. equivalent to <command>systemctl reboot</command>). - <option>reboot-force</option> causes a forced reboot which will terminate all processes forcibly but should - cause no dirty file systems on reboot (i.e. equivalent to <command>systemctl reboot -f</command>) and - <option>reboot-immediate</option> causes immediate execution of the - <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry> system call, which - might result in data loss (i.e. equivalent to <command>systemctl reboot -ff</command>). Similarly, - <option>poweroff</option>, <option>poweroff-force</option>, <option>poweroff-immediate</option> have the effect - of powering down the system with similar semantics. <option>exit</option> causes the manager to exit following - the normal shutdown procedure, and <option>exit-force</option> causes it terminate without shutting down - services. When <option>exit</option> or <option>exit-force</option> is used by default the exit status of the - main process of the unit (if this applies) is returned from the service manager. However, this may be overridden - with <varname>FailureActionExitStatus=</varname>/<varname>SuccessActionExitStatus=</varname>, see - below.</para></listitem> + <listitem><para>Configure the action to take when the unit stops and enters a failed state or + inactive state. Takes one of <option>none</option>, <option>reboot</option>, + <option>reboot-force</option>, <option>reboot-immediate</option>, <option>poweroff</option>, + <option>poweroff-force</option>, <option>poweroff-immediate</option>, <option>exit</option>, + <option>exit-force</option>, <option>soft-reboot</option> and <option>soft-reboot-force</option>. In + system mode, all options are allowed. In user mode, only <option>none</option>, + <option>exit</option>, <option>exit-force</option>, <option>soft-reboot</option> and + <option>soft-reboot-force</option> are allowed. Both options default to <option>none</option>.</para> + + <para>If <option>none</option> is set, no action will be triggered. <option>reboot</option> causes a + reboot following the normal shutdown procedure (i.e. equivalent to <command>systemctl + reboot</command>). <option>reboot-force</option> causes a forced reboot which will terminate all + processes forcibly but should cause no dirty file systems on reboot (i.e. equivalent to + <command>systemctl reboot -f</command>) and <option>reboot-immediate</option> causes immediate + execution of the + <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry> system + call, which might result in data loss (i.e. equivalent to <command>systemctl reboot + -ff</command>). Similarly, <option>poweroff</option>, <option>poweroff-force</option>, + <option>poweroff-immediate</option> have the effect of powering down the system with similar + semantics. <option>exit</option> causes the manager to exit following the normal shutdown procedure, + and <option>exit-force</option> causes it terminate without shutting down services. When + <option>exit</option> or <option>exit-force</option> is used by default the exit status of the main + process of the unit (if this applies) is returned from the service manager. However, this may be + overridden with + <varname>FailureActionExitStatus=</varname>/<varname>SuccessActionExitStatus=</varname>, see + below. <option>soft-reboot</option> will trigger a userspace reboot + operation. <option>soft-reboot-force</option> does that too, but does not go through the shutdown + transaction beforehand.</para></listitem> </varlistentry> <varlistentry> diff --git a/man/systemd.xml b/man/systemd.xml index ca9e4e9988..95dc1fef83 100644 --- a/man/systemd.xml +++ b/man/systemd.xml @@ -520,6 +520,15 @@ </varlistentry> <varlistentry> + <term><constant>SIGRTMIN+7</constant></term> + + <listitem><para>Reboots userspace, starts the <filename>soft-reboot.target</filename> unit. This is + mostly equivalent to <command>systemctl start soft-reboot.target + --job-mode=replace-irreversibly</command>.</para> + </listitem> + </varlistentry> + + <varlistentry> <term><constant>SIGRTMIN+13</constant></term> <listitem><para>Immediately halts the machine.</para></listitem> @@ -544,6 +553,12 @@ </varlistentry> <varlistentry> + <term><constant>SIGRTMIN+17</constant></term> + + <listitem><para>Immediately reboots the userspace.</para></listitem> + </varlistentry> + + <varlistentry> <term><constant>SIGRTMIN+20</constant></term> <listitem><para>Enables display of status messages on the |