chiark / gitweb /
dbus: use _cleanup_free_ instead of freeing ourself
[elogind.git] / man / systemd.cgroup.xml
index 504c9685a56bc82c3ffebb95a43d69a43d735cc0..cc0eb15abb901976db4a2641ab3c793489c7128f 100644 (file)
@@ -44,7 +44,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
   <refnamediv>
     <refname>systemd.cgroup</refname>
-    <refpurpose>Cgroup configuration unit settings</refpurpose>
+    <refpurpose>Control Group configuration unit settings</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
@@ -66,6 +66,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     configuration options which configure the control group settings
     for spawned processes.</para>
 
+    <para>Control Groups is a concept for organizing processes in a
+    hierarch tree of named groups for the purpose of resource
+    management.</para>
+
     <para>This man page lists the configuration options shared by
     those six unit types. See
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
@@ -78,7 +82,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     and
     <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     for more information on the specific unit configuration files. The
-    execution specific configuration options are configured in the
+    execution-specific configuration options are configured in the
     [Slice], [Scope], [Service], [Socket], [Mount], or [Swap]
     sections, depending on the unit type.</para>
   </refsect1>
@@ -90,34 +94,19 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     for cgroup configuration:</para>
 
     <variablelist class='unit-directives'>
-      <varlistentry>
-        <term><varname>CPUAccounting=</varname></term>
-
-        <listitem>
-          <para>Turn on the CPU usage accounting for this
-          unit.</para>
-        </listitem>
-      </varlistentry>
 
       <varlistentry>
-        <term><varname>BlockIOAccounting=</varname></term>
-
-        <listitem>
-          <para>Turn on the Block IO bandwidth accounting
-          for this unit.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><varname>MemoryAccounting=</varname></term>
+        <term><varname>CPUAccounting=</varname></term>
 
         <listitem>
-          <para>Turn on the process and kernel memory
-          accounting for this unit.</para>
+          <para>Turn on CPU usage accounting for this unit. Takes a
+          boolean argument. Note that turning on CPU accounting for
+          one unit might also implicitly turn it on for all units
+          contained in the same slice and for all its parent slices and
+          the units contained therein.</para>
         </listitem>
       </varlistentry>
 
-
       <varlistentry>
         <term><varname>CPUShares=<replaceable>weight</replaceable></varname></term>
 
@@ -126,13 +115,25 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           the processes executed. Takes an integer value. This
           controls the <literal>cpu.shares</literal> control group
           attribute, which defaults to 1024. For details about this
-          control group attribute see <ulink
-          url="http://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt">sched-design-CFS.txt</ulink>.</para>
+          control group attribute, see <ulink
+          url="https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt">sched-design-CFS.txt</ulink>.</para>
 
           <para>Implies <literal>CPUAccounting=true</literal>.</para>
         </listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><varname>MemoryAccounting=</varname></term>
+
+        <listitem>
+          <para>Turn on process and kernel memory accounting for this
+          unit. Takes a boolean argument. Note that turning on memory
+          accounting for one unit might also implicitly turn it on for
+          all units contained in the same slice and for all its parent
+          slices and the units contained therein.</para>
+        </listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><varname>MemoryLimit=<replaceable>bytes</replaceable></varname></term>
         <term><varname>MemorySoftLimit=<replaceable>bytes</replaceable></varname></term>
@@ -145,19 +146,31 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           detects memory contention, memory reclaim will be performed
           until the memory usage is within the "soft" limit. Takes a
           memory size in bytes. If the value is suffixed with K, M, G
-          or T the specified memory size is parsed as Kilobytes,
+          or T, the specified memory size is parsed as Kilobytes,
           Megabytes, Gigabytes, or Terabytes (with the base 1024),
           respectively. This controls the
           <literal>memory.limit_in_bytes</literal> and
           <literal>memory.soft_limit_in_bytes</literal> control group
-          attributes. For details about these control group attributes
+          attributes. For details about these control group attributes,
           see <ulink
-          url="http://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
+          url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
 
           <para>Implies <literal>MemoryAccounting=true</literal>.</para>
         </listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><varname>BlockIOAccounting=</varname></term>
+
+        <listitem>
+          <para>Turn on Block IO accounting for this unit. Takes a
+          boolean argument. Note that turning on block IO accounting
+          for one unit might also implicitly turn it on for all units
+          contained in the same slice and all for its parent slices and
+          the units contained therein.</para>
+        </listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><varname>BlockIOWeight=<replaceable>weight</replaceable></varname></term>
 
@@ -170,9 +183,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         <literal>blkio.weight</literal>
         control group attribute, which
         defaults to 1000. For details about
-        this control group attribute see
+        this control group attribute, see
         <ulink
-            url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para></listitem>
+            url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+
+        <para>Implies
+        <literal>BlockIOAccounting=true</literal>.</para>
+        </listitem>
       </varlistentry>
 
       <varlistentry>
@@ -190,8 +207,11 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           <literal>blkio.weight_device</literal> control group
           attribute, which defaults to 1000. Use this option multiple
           times to set weights for multiple devices. For details about
-          this control group attribute see <ulink
-          url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+          this control group attribute, see <ulink
+          url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+
+          <para>Implies
+          <literal>BlockIOAccounting=true</literal>.</para>
         </listitem>
       </varlistentry>
 
@@ -206,7 +226,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           specify the device specific bandwidth. The file path may be
           a path to a block device node, or as any other file in which
           case the backing block device of the file system of the file
-          is used.  If the bandwidth is suffixed with K, M, G, or T
+          is used. If the bandwidth is suffixed with K, M, G, or T,
           the specified bandwidth is parsed as Kilobytes, Megabytes,
           Gigabytes, or Terabytes, respectively (Example:
           "/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5M"). This
@@ -214,9 +234,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           <literal>blkio.write_bps_device</literal> control group
           attributes. Use this option multiple times to set bandwidth
           limits for multiple devices. For details about these control
-          group attributes see
-          <ulink url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
+          group attributes, see
+          <ulink url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
           </para>
+
+          <para>Implies
+          <literal>BlockIOAccounting=true</literal>.</para>
         </listitem>
       </varlistentry>
 
@@ -230,13 +253,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           followed by a combination of <constant>r</constant>,
           <constant>w</constant>, <constant>m</constant> to control
           <emphasis>r</emphasis>eading, <emphasis>w</emphasis>riting,
-          or creating of the specific device node by the unit
+          or creation of the specific device node by the unit
           (<emphasis>m</emphasis>knod), respectively. This controls
           the <literal>devices.allow</literal> and
           <literal>devices.deny</literal> control group
-          attributes. For details about these control group attributes
+          attributes. For details about these control group attributes,
           see <ulink
-          url="http://www.kernel.org/doc/Documentation/cgroups/devices.txt">devices.txt</ulink>.</para>
+          url="https://www.kernel.org/doc/Documentation/cgroups/devices.txt">devices.txt</ulink>.</para>
         </listitem>
       </varlistentry>
 
@@ -259,7 +282,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
             <varlistentry>
               <term><option>closed</option></term>
               <listitem>
-                <para>in addition allows access to standard pseudo
+                <para>in addition, allows access to standard pseudo
                 devices including
                 <filename>/dev/null</filename>,
                 <filename>/dev/zero</filename>,
@@ -274,7 +297,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
               <term><option>auto</option></term>
               <listitem>
                 <para>
-                  in addition allows access to all devices if no
+                  in addition, allows access to all devices if no
                   explicit <varname>DeviceAllow=</varname> is present.
                   This is the default.
                 </para>
@@ -283,6 +306,29 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           </variablelist>
         </listitem>
       </varlistentry>
+
+      <varlistentry>
+        <term><varname>Slice=</varname></term>
+
+        <listitem>
+          <para>The name of the slice unit to place the unit
+          in. Defaults to <filename>system.slice</filename> for all
+          non-instantiated units of all unit types (except for slice
+          units themselves see below). Instance units are by default
+          placed in a subslice of <filename>system.slice</filename>
+          that is named after the template name.</para>
+
+          <para>This option may be used to arrange systemd units in a
+          hierarchy of slices each of which might have resource
+          settings applied.</para>
+
+          <para>For units of type slice, the only accepted value for
+          this setting is the parent slice. Since the name of a slice
+          unit implies the parent slice, it is hence redundant to ever
+          set this parameter directly for slice units.</para>
+        </listitem>
+      </varlistentry>
+
     </variablelist>
   </refsect1>
 
@@ -298,11 +344,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
       The documentation for control groups and specific controllers in the Linux kernel:
-      <ulink url="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>,
-      <ulink url="http://www.kernel.org/doc/Documentation/cgroups/cpuacct.txt">cpuacct.txt</ulink>,
-      <ulink url="http://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>,
-      <ulink url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
+      <ulink url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>,
+      <ulink url="https://www.kernel.org/doc/Documentation/cgroups/cpuacct.txt">cpuacct.txt</ulink>,
+      <ulink url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>,
+      <ulink url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
     </para>
   </refsect1>
 </refentry>