<?xml version='1.0'?>
<!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.slice">
  <refentryinfo>
    <title>systemd.slice</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd.slice</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd.slice</refname>
    <refpurpose>Slice unit configuration</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename><replaceable>slice</replaceable>.slice</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>A unit configuration file whose name ends in <literal>.slice</literal> encodes information about a slice
    unit. A slice unit is a concept for hierarchically managing resources of a group of processes. This management is
    performed by creating a node in the Linux Control Group (cgroup) tree. Units that manage processes (primarily scope
    and service units) may be assigned to a specific slice. For each slice, certain resource limits may be set that
    apply to all processes of all units contained in that slice. Slices are organized hierarchically in a tree. The
    name of the slice encodes the location in the tree. The name consists of a dash-separated series of names, which
    describes the path to the slice from the root slice. The root slice is named <filename>-.slice</filename>. Example:
    <filename>foo-bar.slice</filename> is a slice that is located within <filename>foo.slice</filename>, which in turn
    is located in the root slice <filename>-.slice</filename>.
    </para>

    <para>Note that slice units cannot be templated, nor is possible to add multiple names to a slice unit by creating
    additional symlinks to its unit file.</para>

    <para>By default, service and scope units are placed in
    <filename>system.slice</filename>, virtual machines and containers
    registered with
    <citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    are found in <filename>machine.slice</filename>, and user sessions
    handled by
    <citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    in <filename>user.slice</filename>. See
    <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    for more information.</para>

    <para>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
    slice specific configuration options are configured in
    the [Slice] section. Currently, only generic resource control settings
    as described in
    <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry> are allowed.
    </para>

    <para>See the <ulink
    url="https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface">New
    Control Group Interfaces</ulink> for an introduction on how to make
    use of slice units from programs.</para>
  </refsect1>

  <refsect1>
    <title>Automatic Dependencies</title>

    <refsect2>
      <title>Implicit Dependencies</title>

      <para>The following dependencies are implicitly added:</para>

      <itemizedlist>
        <listitem><para>Slice units automatically gain dependencies of type
        <varname>After=</varname> and <varname>Requires=</varname> on
        their immediate parent slice unit.</para></listitem>
      </itemizedlist>
    </refsect2>

    <refsect2>
      <title>Default Dependencies</title>

      <para>The following dependencies are added unless <varname>DefaultDependencies=no</varname> is set:</para>

      <itemizedlist>
        <listitem><para>Slice units will automatically have dependencies of type <varname>Conflicts=</varname> and
        <varname>Before=</varname> on
        <filename>shutdown.target</filename>. These ensure that slice units are removed prior to system shutdown.
        Only slice units involved with late system shutdown should disable
        <varname>DefaultDependencies=</varname> option.</para></listitem>
      </itemizedlist>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>Slice unit files may include [Unit] and [Install] sections, which are described in
    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    No options specific to this file type are supported.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
