<?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>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>
