| <?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+ --> |
| |
| <refentry id="systemd.swap" |
| xmlns:xi="http://www.w3.org/2001/XInclude"> |
| |
| <refentryinfo> |
| <title>systemd.swap</title> |
| <productname>systemd</productname> |
| </refentryinfo> |
| |
| <refmeta> |
| <refentrytitle>systemd.swap</refentrytitle> |
| <manvolnum>5</manvolnum> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>systemd.swap</refname> |
| <refpurpose>Swap unit configuration</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <para><filename><replaceable>swap</replaceable>.swap</filename></para> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para>A unit configuration file whose name ends in |
| <literal>.swap</literal> encodes information about a swap device |
| or file for memory paging controlled and supervised by |
| systemd.</para> |
| |
| <para>This man page lists the configuration options specific to |
| this unit type. See |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for the common options of all unit configuration files. The common |
| configuration items are configured in the generic [Unit] and |
| [Install] sections. The swap specific configuration options are |
| configured in the [Swap] section.</para> |
| |
| <para>Additional options are listed in |
| <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| which define the execution environment the <citerefentry |
| project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| program is executed in, in |
| <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| which define the way these processes are |
| terminated, and in |
| <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| which configure resource control settings for these processes of the |
| unit.</para> |
| |
| <para>Swap units must be named after the devices or files they control. Example: the swap device <filename |
| index="false">/dev/sda5</filename> must be configured in a unit file <filename>dev-sda5.swap</filename>. For |
| details about the escaping logic used to convert a file system path to a unit name, see |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Note that swap |
| units cannot be templated, nor is possible to add multiple names to a swap unit by creating additional symlinks to |
| it.</para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Automatic Dependencies</title> |
| |
| <refsect2> |
| <title>Implicit Dependencies</title> |
| |
| <para>The following dependencies are implicitly added:</para> |
| |
| <itemizedlist> |
| <listitem><para>All swap units automatically get the |
| <varname>BindsTo=</varname> and <varname>After=</varname> |
| dependencies on the device units or the mount units of the files |
| they are activated from.</para></listitem> |
| </itemizedlist> |
| |
| <para>Additional implicit dependencies may be added as result of |
| execution and resource control parameters as documented in |
| <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| and |
| <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para> |
| </refsect2> |
| |
| <refsect2> |
| <title>Default Dependencies</title> |
| |
| <para>The following dependencies are added unless <varname>DefaultDependencies=no</varname> is set:</para> |
| |
| <itemizedlist> |
| <listitem><para>Swap units automatically acquire a <varname>Conflicts=</varname> and a |
| <varname>Before=</varname> dependency on <filename>umount.target</filename> so that they are deactivated at |
| shutdown as well as a <varname>Before=swap.target</varname> dependency.</para></listitem> |
| </itemizedlist> |
| </refsect2> |
| </refsect1> |
| |
| <refsect1> |
| <title><filename>fstab</filename></title> |
| |
| <para>Swap units may either be configured via unit files, or via |
| <filename>/etc/fstab</filename> (see |
| <citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for details). Swaps listed in <filename>/etc/fstab</filename> will |
| be converted into native units dynamically at boot and when the |
| configuration of the system manager is reloaded. See |
| <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| for details about the conversion.</para> |
| |
| <para>If a swap device or file is configured in both |
| <filename>/etc/fstab</filename> and a unit file, the configuration |
| in the latter takes precedence.</para> |
| |
| <para>When reading <filename>/etc/fstab</filename>, a few special |
| options are understood by systemd which influence how dependencies |
| are created for swap units.</para> |
| |
| <variablelist class='fstab-options'> |
| <varlistentry> |
| <term><option>noauto</option></term> |
| <term><option>auto</option></term> |
| |
| <listitem><para>With <option>noauto</option>, the swap unit |
| will not be added as a dependency for |
| <filename>swap.target</filename>. This means that it will not |
| be activated automatically during boot, unless it is pulled in |
| by some other unit. The <option>auto</option> option has the |
| opposite meaning and is the default.</para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>nofail</option></term> |
| |
| <listitem><para>With <option>nofail</option>, the swap unit |
| will be only wanted, not required by |
| <filename>swap.target</filename>. This means that the boot |
| will continue even if this swap device is not activated |
| successfully.</para> |
| </listitem> |
| </varlistentry> |
| |
| <xi:include href="systemd.mount.xml" xpointer="device-timeout" /> |
| |
| <varlistentry> |
| <term><option>x-systemd.makefs</option></term> |
| |
| <listitem><para>The swap structure will be initialized on the device. If the device is not |
| "empty", i.e. it contains any signature, the operation will be skipped. It is hence expected |
| that this option remains set even after the device has been initialized.</para> |
| |
| <para>Note that this option can only be used in <filename>/etc/fstab</filename>, and will be |
| ignored when part of the <varname>Options=</varname> setting in a unit file.</para> |
| |
| <para>See |
| <citerefentry><refentrytitle>systemd-mkswap@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| and the discussion of |
| <citerefentry project='man-pages'><refentrytitle>wipefs</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| in <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>. |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| |
| <refsect1> |
| <title>Options</title> |
| |
| <para>Swap unit files must include a [Swap] section, which carries |
| information about the swap device it supervises. A number of |
| options that may be used in this section are shared with other |
| unit types. These options are documented in |
| <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| and |
| <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>. |
| The options specific to the [Swap] section of swap units are the |
| following:</para> |
| |
| <variablelist class='unit-directives'> |
| |
| <varlistentry> |
| <term><varname>What=</varname></term> |
| <listitem><para>Takes an absolute path of a device node or file to use for paging. See <citerefentry |
| project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> for |
| details. If this refers to a device node, a dependency on the respective device unit is automatically |
| created. (See |
| <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for more information.) If this refers to a file, a dependency on the respective mount unit is |
| automatically created. (See |
| <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> for |
| more information.) This option is mandatory. Note that the usual specifier expansion is applied to |
| this setting, literal percent characters should hence be written as |
| <literal class='specifiers'>%%</literal>.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>Priority=</varname></term> |
| |
| <listitem><para>Swap priority to use when activating the swap |
| device or file. This takes an integer. This setting is |
| optional and ignored when the priority is set by <option>pri=</option> in the |
| <varname>Options=</varname> key.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>Options=</varname></term> |
| |
| <listitem><para>May contain an option string for the swap device. This may be used for controlling discard |
| options among other functionality, if the swap backing device supports the discard or trim operation. (See |
| <citerefentry project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| for more information.) Note that the usual specifier expansion is applied to this setting, literal percent |
| characters should hence be written as <literal>%%</literal>.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>TimeoutSec=</varname></term> |
| <listitem><para>Configures the time to wait for the swapon |
| command to finish. If a command does not exit within the |
| configured time, the swap will be considered failed and be |
| shut down again. All commands still running will be terminated |
| forcibly via <constant>SIGTERM</constant>, and after another |
| delay of this time with <constant>SIGKILL</constant>. (See |
| <option>KillMode=</option> in |
| <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>.) |
| Takes a unit-less value in seconds, or a time span value such |
| as "5min 20s". Pass <literal>0</literal> to disable the |
| timeout logic. Defaults to |
| <varname>DefaultTimeoutStartSec=</varname> from the manager |
| configuration file (see |
| <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>). |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| |
| <para>Check |
| <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| and |
| <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for more settings.</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-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry> |
| </para> |
| </refsect1> |
| |
| </refentry> |