File: systemd.slice.xml

package info (click to toggle)
systemd-udeb 259-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 104,120 kB
  • sloc: ansic: 726,480; xml: 121,118; python: 35,852; sh: 33,447; cpp: 946; awk: 102; makefile: 89; lisp: 13; sed: 1
file content (159 lines) | stat: -rw-r--r-- 8,194 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd.slice" xmlns:xi="http://www.w3.org/2001/XInclude">
  <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://systemd.io/CONTROL_GROUP_INTERFACE">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>.</para>

    <para>Slice files may include a [Slice] section. Many options that may be used in this section are shared
    with other unit types. These options are documented in
    <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

    <para>The options specific to the [Slice] section of slice units are the following:</para>

    <variablelist class='unit-directives'>
      <varlistentry>
        <term><varname>ConcurrencyHardMax=</varname></term>
        <term><varname>ConcurrencySoftMax=</varname></term>

        <listitem><para>Configures a hard and a soft limit on the maximum number of units assigned to this
        slice (or any descendent slices) that may be active at the same time. If the hard limit is reached no
        further units associated with the slice may be activated, and their activation will fail with an
        error. If the soft limit is reached any further requested activation of units will be queued, but no
        immediate error is generated. The queued activation job will remain queued until the number of
        concurrent active units within the slice is below the limit again.</para>

        <para>If the special value <literal>infinity</literal> is specified, no concurrency limit is
        enforced. This is the default.</para>

        <para>Note that if multiple start jobs are queued for units, and all their dependencies are fulfilled
        they'll be processed in an order that is dependent on the unit type, the CPU weight (for unit types
        that know the concept, such as services), the nice level (similar), and finally in alphabetical order
        by the unit name. This may be used to influence dispatching order when using
        <varname>ConcurrencySoftMax=</varname> to pace concurrency within a slice unit.</para>

        <para>Note that these options have a hierarchial effect: a limit set for a slice unit will apply to
        both the units immediately within the slice, but also all units further down the slice tree. Also
        note that each sub-slice unit counts as one unit each too, and thus when choosing a limit for a slice
        hierarchy the limit must provide room for both the payload units (i.e. services, mounts, …) and
        structural units (i.e. slice units), if any are defined.</para>

        <xi:include href="version-info.xml" xpointer="v258"/></listitem>
      </varlistentry>
    </variablelist>

  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>

</refentry>